Commit 0728a82c authored by zhang_z's avatar zhang_z

提交代码;

parent a799dab0
...@@ -564,7 +564,6 @@ public class C { ...@@ -564,7 +564,6 @@ public class C {
public static final int PKG = 5; public static final int PKG = 5;
public static final int SKU_DETAIL = 6; public static final int SKU_DETAIL = 6;
public static final int ADD_SKU = 7; public static final int ADD_SKU = 7;
public static final int SKU_EDITOR = 8;
} }
} }
...@@ -20,7 +20,7 @@ public class Sskugrp extends RealmObject implements BaseModel, BaseBean { ...@@ -20,7 +20,7 @@ public class Sskugrp extends RealmObject implements BaseModel, BaseBean {
Sskugrp sskugrp = new Sskugrp(); Sskugrp sskugrp = new Sskugrp();
sskugrp.setSelected(true); sskugrp.setSelected(true);
sskugrp.setSkuGrpId(0l); sskugrp.setSkuGrpId(0l);
sskugrp.setSkuGrpName("全部分组"); sskugrp.setSkuGrpName("全部商品");
return sskugrp; return sskugrp;
} }
......
...@@ -157,7 +157,7 @@ public class MainPresenter extends MainContract.Presenter { ...@@ -157,7 +157,7 @@ public class MainPresenter extends MainContract.Presenter {
// //
// sskugrp = new Sskugrp(); // sskugrp = new Sskugrp();
// sskugrp.setSkuGrpId(0L); // sskugrp.setSkuGrpId(0L);
// sskugrp.setSkuGrpName("全部分组"); // sskugrp.setSkuGrpName("全部商品");
// sskugrp.setSelected(true); // sskugrp.setSelected(true);
// sskugrps.add(0, sskugrp); // sskugrps.add(0, sskugrp);
// //
......
...@@ -138,17 +138,25 @@ public class SsskuActivity extends BaseActivity<SsskuPresenter, ActivitySsskuBin ...@@ -138,17 +138,25 @@ public class SsskuActivity extends BaseActivity<SsskuPresenter, ActivitySsskuBin
@Override @Override
public void showEditorFragment(Sssku sku, int editMode) { public void showEditorFragment(Sssku sku, int editMode) {
this.showTitleBarByTitleMode(C.TITLE_MODE.TEXT);
switch (editMode) { switch (editMode) {
case C.SKU_EDITOR_MODE.ADD: case C.SKU_EDITOR_MODE.ADD:
this.showTitleBarByTitleMode(C.TITLE_MODE.SKU_EDITOR);
mViewBinding.tvEditorHint.setText("已有");
mViewBinding.tvEditorHint.setBackgroundResource(R.drawable.shape_orange_r1);
mViewBinding.tvTitle.setText(R.string.sssku_add); mViewBinding.tvTitle.setText(R.string.sssku_add);
this.start(mEditorFragment.setSssku(sku).setEditMode(C.SKU_EDITOR_MODE.ADD)); this.start(mEditorFragment.setSssku(sku).setEditMode(C.SKU_EDITOR_MODE.ADD));
break; break;
case C.SKU_EDITOR_MODE.UNKNOWN: case C.SKU_EDITOR_MODE.UNKNOWN:
this.showTitleBarByTitleMode(C.TITLE_MODE.SKU_EDITOR);
mViewBinding.tvEditorHint.setText("新增");
mViewBinding.tvEditorHint.setBackgroundResource(R.drawable.shape_red_r1);
mViewBinding.tvTitle.setText(R.string.sssku_add); mViewBinding.tvTitle.setText(R.string.sssku_add);
this.start(mEditorFragment.setSssku(sku).setEditMode(C.SKU_EDITOR_MODE.UNKNOWN)); this.start(mEditorFragment.setSssku(sku).setEditMode(C.SKU_EDITOR_MODE.UNKNOWN));
break; break;
case C.SKU_EDITOR_MODE.UPDATE: case C.SKU_EDITOR_MODE.UPDATE:
this.showTitleBarByTitleMode(C.TITLE_MODE.TEXT);
mViewBinding.tvTitle.setText(R.string.sku_update); mViewBinding.tvTitle.setText(R.string.sku_update);
this.start(mEditorFragment.setSssku(sku).setEditMode(C.SKU_EDITOR_MODE.UPDATE)); this.start(mEditorFragment.setSssku(sku).setEditMode(C.SKU_EDITOR_MODE.UPDATE));
break; break;
......
...@@ -213,6 +213,11 @@ public interface SsskuContract { ...@@ -213,6 +213,11 @@ public interface SsskuContract {
*/ */
public abstract void clickSku(Sssku sssku); public abstract void clickSku(Sssku sssku);
/**
* 管理页面 - 刷新商品分组
*/
public abstract void refreshSkugrp();
/** /**
* 管理页面 - 切换分组 * 管理页面 - 切换分组
* *
......
...@@ -46,6 +46,11 @@ public class SsskuPresenter extends SsskuContract.Presenter { ...@@ -46,6 +46,11 @@ public class SsskuPresenter extends SsskuContract.Presenter {
clickSku(sssku, C.TITLE_MODE.SKU); clickSku(sssku, C.TITLE_MODE.SKU);
} }
@Override
public void refreshSkugrp() {
this.getSkugrp();
}
@Override @Override
public void clickSkugrp(Sskugrp sskugrp) { public void clickSkugrp(Sskugrp sskugrp) {
//点击商品管理里的分组 //点击商品管理里的分组
...@@ -164,6 +169,12 @@ public class SsskuPresenter extends SsskuContract.Presenter { ...@@ -164,6 +169,12 @@ public class SsskuPresenter extends SsskuContract.Presenter {
@Override @Override
public void clickDeleteSkugrp(Sskugrp sskugrp) { public void clickDeleteSkugrp(Sskugrp sskugrp) {
mView.showLoadingDialog(); mView.showLoadingDialog();
if (mSkuGrpId.longValue() == sskugrp.getSkuGrpId()) {
this.mPageNum = 0;
this.mSkuGrpId = 0L;
mView.loadSkugrpState(0L);
this.getSku();
}
mCompositeDisposable.add( mCompositeDisposable.add(
ApiFactory.Sskugrp.delete(sskugrp.getSkuGrpId()) ApiFactory.Sskugrp.delete(sskugrp.getSkuGrpId())
.doOnSubscribe(subscription -> mView.dismissLoadingDialog()) .doOnSubscribe(subscription -> mView.dismissLoadingDialog())
......
...@@ -29,6 +29,7 @@ public class SkugrpDeleteDialog extends BaseDialog<SsskuPresenter, DialogSkugrpD ...@@ -29,6 +29,7 @@ public class SkugrpDeleteDialog extends BaseDialog<SsskuPresenter, DialogSkugrpD
@Override @Override
public void initView() { public void initView() {
mViewBinding.tvSkugrpName.setText(mSskugrp.getSkuGrpName());
} }
@Override @Override
......
...@@ -242,6 +242,7 @@ public class EditorFragment extends BaseFragment<SsskuPresenter, FragmentSsskuEd ...@@ -242,6 +242,7 @@ public class EditorFragment extends BaseFragment<SsskuPresenter, FragmentSsskuEd
private void setInfoViewByEditMode() { private void setInfoViewByEditMode() {
switch (mEditorMode) { switch (mEditorMode) {
case C.SKU_EDITOR_MODE.UNKNOWN: case C.SKU_EDITOR_MODE.UNKNOWN:
mViewBinding.etName.setEnabled(true);
mViewBinding.nsType1.setVisibility(View.VISIBLE); mViewBinding.nsType1.setVisibility(View.VISIBLE);
mViewBinding.nsType2.setVisibility(View.VISIBLE); mViewBinding.nsType2.setVisibility(View.VISIBLE);
mViewBinding.nsType3.setVisibility(View.VISIBLE); mViewBinding.nsType3.setVisibility(View.VISIBLE);
...@@ -251,6 +252,7 @@ public class EditorFragment extends BaseFragment<SsskuPresenter, FragmentSsskuEd ...@@ -251,6 +252,7 @@ public class EditorFragment extends BaseFragment<SsskuPresenter, FragmentSsskuEd
this.loadCla(); this.loadCla();
break; break;
default: default:
mViewBinding.etName.setEnabled(false);
mViewBinding.nsType1.setVisibility(View.INVISIBLE); mViewBinding.nsType1.setVisibility(View.INVISIBLE);
mViewBinding.nsType2.setVisibility(View.INVISIBLE); mViewBinding.nsType2.setVisibility(View.INVISIBLE);
mViewBinding.nsType3.setVisibility(View.GONE); mViewBinding.nsType3.setVisibility(View.GONE);
......
...@@ -89,7 +89,7 @@ public class ManagerFragment extends BaseFragment<SsskuPresenter, FragmentSsskuM ...@@ -89,7 +89,7 @@ public class ManagerFragment extends BaseFragment<SsskuPresenter, FragmentSsskuM
public void loadSkugrps(List<Sskugrp> sskugrps) { public void loadSkugrps(List<Sskugrp> sskugrps) {
Sskugrp sskugrp = new Sskugrp(); Sskugrp sskugrp = new Sskugrp();
sskugrp.setSkuGrpId(0L); sskugrp.setSkuGrpId(0L);
sskugrp.setSkuGrpName("全部分组"); sskugrp.setSkuGrpName("全部商品");
sskugrp.setSelected(true); sskugrp.setSelected(true);
List<Sskugrp> _sskugrps = new ArrayList<>(); List<Sskugrp> _sskugrps = new ArrayList<>();
_sskugrps.addAll(sskugrps); _sskugrps.addAll(sskugrps);
......
...@@ -37,6 +37,8 @@ public class SkugrpFragment extends BaseFragment<SsskuPresenter, FragmentSsskuSk ...@@ -37,6 +37,8 @@ public class SkugrpFragment extends BaseFragment<SsskuPresenter, FragmentSsskuSk
mViewBinding.rlSkugrp.setAdapter(mSkugrpAdapter); mViewBinding.rlSkugrp.setAdapter(mSkugrpAdapter);
mViewBinding.rlSkugrp.setLayoutManager(new LinearLayoutManager(mContext)); mViewBinding.rlSkugrp.setLayoutManager(new LinearLayoutManager(mContext));
mViewBinding.srlSkugrp.setOnRefreshListener(this::refreshSkugrp);
mViewBinding.llSkugrpAdd.setOnClickListener(view -> { mViewBinding.llSkugrpAdd.setOnClickListener(view -> {
new SkugrpEditorDialog().show(((SsskuActivity) getActivity())); new SkugrpEditorDialog().show(((SsskuActivity) getActivity()));
}); });
...@@ -46,6 +48,14 @@ public class SkugrpFragment extends BaseFragment<SsskuPresenter, FragmentSsskuSk ...@@ -46,6 +48,14 @@ public class SkugrpFragment extends BaseFragment<SsskuPresenter, FragmentSsskuSk
}); });
} }
/**
* 刷新商品分组
*/
private void refreshSkugrp() {
mSkugrpAdapter.setEnableLoadMore(false);
mPresenter.refreshSkugrp();
}
/** /**
* 加载商品分组 * 加载商品分组
* *
...@@ -54,7 +64,10 @@ public class SkugrpFragment extends BaseFragment<SsskuPresenter, FragmentSsskuSk ...@@ -54,7 +64,10 @@ public class SkugrpFragment extends BaseFragment<SsskuPresenter, FragmentSsskuSk
public void loadSkugrps(List<Sskugrp> sskugrps) { public void loadSkugrps(List<Sskugrp> sskugrps) {
mSskugrps = sskugrps; mSskugrps = sskugrps;
if (mSkugrpAdapter == null) return; if (mSkugrpAdapter == null) return;
mSkugrpAdapter.setEnableLoadMore(true);
mViewBinding.srlSkugrp.setRefreshing(false);
mSkugrpAdapter.setNewData(mSskugrps); mSkugrpAdapter.setNewData(mSskugrps);
mSkugrpAdapter.loadMoreEnd(true);
mViewBinding.setVisibility(sskugrps.size() > 0 ? View.VISIBLE : View.INVISIBLE); mViewBinding.setVisibility(sskugrps.size() > 0 ? View.VISIBLE : View.INVISIBLE);
} }
......
package com.xingdata.zzdpos.ui.store.fragment; package com.xingdata.zzdpos.ui.scan;
import android.content.Context; import android.content.Context;
import android.os.Handler; import android.os.Handler;
import com.google.zxing.Result;
import com.xingdata.zzdpos.R; import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseFragment; import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.base.BasePresenter;
import com.xingdata.zzdpos.databinding.FragmentStoreScanBinding; import com.xingdata.zzdpos.databinding.FragmentStoreScanBinding;
import com.xingdata.zzdpos.ui.store.StorePresenter;
import me.dm7.barcodescanner.core.IViewFinder; import me.dm7.barcodescanner.core.IViewFinder;
import me.dm7.barcodescanner.core.ViewFinderView; import me.dm7.barcodescanner.core.ViewFinderView;
import me.dm7.barcodescanner.zxing.ZXingScannerView; import me.dm7.barcodescanner.zxing.ZXingScannerView;
public class ScanFragment extends BaseFragment<StorePresenter, FragmentStoreScanBinding> { public class ScanFragment<P extends BasePresenter> extends BaseFragment<P, FragmentStoreScanBinding> {
private ZXingScannerView mScannerView; private ZXingScannerView mScannerView;
private ZXingScannerView.ResultHandler mResultHandler; private ZXingScannerView.ResultHandler mResultHandler;
...@@ -23,20 +23,43 @@ public class ScanFragment extends BaseFragment<StorePresenter, FragmentStoreScan ...@@ -23,20 +23,43 @@ public class ScanFragment extends BaseFragment<StorePresenter, FragmentStoreScan
return R.layout.fragment_store_scan; return R.layout.fragment_store_scan;
} }
private OnScanCompletedListener mOnScanCompletedListener;
public OnScanCompletedListener getOnScanCompletedListener() {
return mOnScanCompletedListener;
}
public void setOnScanCompletedListener(OnScanCompletedListener onScanCompletedListener) {
this.mOnScanCompletedListener = onScanCompletedListener;
}
public interface OnScanCompletedListener {
void OnScanCompleted(String barcode);
}
@Override @Override
public void initView() { public void initView() {
mScannerView = new ZXingScannerView(mContext) { mScannerView = new ZXingScannerView(mContext) {
@Override @Override
protected IViewFinder createViewFinderView(Context context) { protected IViewFinder createViewFinderView(Context context) {
return new CustomViewFinderView(context); return new ScanFragment.CustomViewFinderView(context);
} }
}; };
mResultHandler = result -> { mResultHandler = result -> {
mPresenter.scanComplete(result.getText()); if (mOnScanCompletedListener != null) {
mOnScanCompletedListener.OnScanCompleted(result.getText());
}
resetScanner(); resetScanner();
}; };
mResultHandler = new ZXingScannerView.ResultHandler() {
@Override
public void handleResult(Result result) {
}
};
mScannerView.setResultHandler(mResultHandler); mScannerView.setResultHandler(mResultHandler);
mViewBinding.contentFrame.addView(mScannerView); mViewBinding.contentFrame.addView(mScannerView);
} }
...@@ -57,7 +80,7 @@ public class ScanFragment extends BaseFragment<StorePresenter, FragmentStoreScan ...@@ -57,7 +80,7 @@ public class ScanFragment extends BaseFragment<StorePresenter, FragmentStoreScan
* 重置扫描器 * 重置扫描器
*/ */
public void resetScanner() { public void resetScanner() {
new Handler().postDelayed(() -> mScannerView.resumeCameraPreview(mResultHandler), 500); new Handler().postDelayed(() -> mScannerView.resumeCameraPreview(mResultHandler), 1000);
} }
private static class CustomViewFinderView extends ViewFinderView { private static class CustomViewFinderView extends ViewFinderView {
...@@ -67,7 +90,7 @@ public class ScanFragment extends BaseFragment<StorePresenter, FragmentStoreScan ...@@ -67,7 +90,7 @@ public class ScanFragment extends BaseFragment<StorePresenter, FragmentStoreScan
int themeColor = getResources().getColor(R.color.blue_mawu); int themeColor = getResources().getColor(R.color.blue_mawu);
this.setBorderColor(themeColor); this.setBorderColor(themeColor);
this.setBorderStrokeWidth(getResources().getDimensionPixelOffset(R.dimen.all_spacing)); this.setBorderStrokeWidth(getResources().getDimensionPixelOffset(R.dimen.all_radius));
this.setLaserColor(themeColor); this.setLaserColor(themeColor);
this.setLaserEnabled(true); this.setLaserEnabled(true);
......
...@@ -48,11 +48,12 @@ public class VipFragment extends BaseFragment<SettlePresenter, FragmentSettleVip ...@@ -48,11 +48,12 @@ public class VipFragment extends BaseFragment<SettlePresenter, FragmentSettleVip
* @param vips 会员列表 * @param vips 会员列表
*/ */
public void loadVips(List<Vip> vips) { public void loadVips(List<Vip> vips) {
mViewBinding.setEmpty(vips.size() == 0);
mVipAdapter.setNewData(vips);
if (vips.size() == 1) { if (vips.size() == 1) {
mPresenter.selectVip(vips.get(0)); mPresenter.selectVip(vips.get(0));
this.pop(); this.pop();
} else {
mViewBinding.setEmpty(vips.size() == 0);
mVipAdapter.setNewData(vips);
} }
} }
......
...@@ -23,10 +23,10 @@ import com.xingdata.zzdpos.model.Saledetail; ...@@ -23,10 +23,10 @@ import com.xingdata.zzdpos.model.Saledetail;
import com.xingdata.zzdpos.model.Saleorder; import com.xingdata.zzdpos.model.Saleorder;
import com.xingdata.zzdpos.model.Sskugrp; import com.xingdata.zzdpos.model.Sskugrp;
import com.xingdata.zzdpos.ui.dialog.LoadingDialog; import com.xingdata.zzdpos.ui.dialog.LoadingDialog;
import com.xingdata.zzdpos.ui.scan.ScanFragment;
import com.xingdata.zzdpos.ui.settle.SettleActivity; import com.xingdata.zzdpos.ui.settle.SettleActivity;
import com.xingdata.zzdpos.ui.store.dialog.CartDialog; import com.xingdata.zzdpos.ui.store.dialog.CartDialog;
import com.xingdata.zzdpos.ui.store.dialog.MsDialog; import com.xingdata.zzdpos.ui.store.dialog.MsDialog;
import com.xingdata.zzdpos.ui.store.fragment.ScanFragment;
import com.xingdata.zzdpos.ui.store.fragment.SearchFragment; import com.xingdata.zzdpos.ui.store.fragment.SearchFragment;
import com.xingdata.zzdpos.ui.store.fragment.StoreFragment; import com.xingdata.zzdpos.ui.store.fragment.StoreFragment;
...@@ -53,13 +53,10 @@ public class StoreActivity extends BaseActivity<StorePresenter, ActivityStoreBin ...@@ -53,13 +53,10 @@ public class StoreActivity extends BaseActivity<StorePresenter, ActivityStoreBin
@Override @Override
public void initView() { public void initView() {
loadRootFragment(R.id.f_store, mStoreFragment); loadRootFragment(R.id.f_store, mStoreFragment);
mViewBinding.ivCart.setOnClickListener(view -> mPresenter.clickCartLogo()); mViewBinding.ivCart.setOnClickListener(view -> mPresenter.clickCartLogo());
mViewBinding.tvSettle.setOnClickListener(view -> mPresenter.clickSettle()); mViewBinding.tvSettle.setOnClickListener(view -> mPresenter.clickSettle());
mViewBinding.btnBack.setOnClickListener(view -> onBackPressedSupport());
mViewBinding.btnBack.setOnClickListener(view -> {
onBackPressedSupport();
});
mViewBinding.etSearch.setOnEditorActionListener((textView, i, keyEvent) -> { mViewBinding.etSearch.setOnEditorActionListener((textView, i, keyEvent) -> {
if (i == EditorInfo.IME_ACTION_SEARCH && !StringUtils.isEmpty(textView.getText())) { if (i == EditorInfo.IME_ACTION_SEARCH && !StringUtils.isEmpty(textView.getText())) {
KeyboardUtils.hideSoftInput(textView); KeyboardUtils.hideSoftInput(textView);
...@@ -67,28 +64,21 @@ public class StoreActivity extends BaseActivity<StorePresenter, ActivityStoreBin ...@@ -67,28 +64,21 @@ public class StoreActivity extends BaseActivity<StorePresenter, ActivityStoreBin
} }
return false; return false;
}); });
mViewBinding.etSearch.setOnFocusChangeListener((view, b) -> { mViewBinding.etSearch.setOnFocusChangeListener((view, b) -> mPresenter.searchBarFocusChanged(b));
mPresenter.searchBarFocusChanged(b); mViewBinding.btnScan.setOnClickListener(view -> PermissionUtils.permission(PermissionConstants.CAMERA)
}); .callback(new PermissionUtils.FullCallback() {
mViewBinding.btnScan.setOnClickListener(view -> { @Override
PermissionUtils.permission(PermissionConstants.CAMERA) public void onGranted(List<String> permissionsGranted) {
.rationale(new PermissionUtils.OnRationaleListener() { showScanFragment();
@Override }
public void rationale(final ShouldRequest shouldRequest) {
} @Override
}) public void onDenied(List<String> permissionsDeniedForever, List<String> permissionsDenied) {
.callback(new PermissionUtils.FullCallback() { }
@Override })
public void onGranted(List<String> permissionsGranted) { .request());
showScanFragment();
} mScanFragment.setOnScanCompletedListener(barcode -> mPresenter.scanComplete(barcode));
@Override
public void onDenied(List<String> permissionsDeniedForever, List<String> permissionsDenied) {
}
})
.request();
});
} }
@Override @Override
...@@ -123,49 +113,9 @@ public class StoreActivity extends BaseActivity<StorePresenter, ActivityStoreBin ...@@ -123,49 +113,9 @@ public class StoreActivity extends BaseActivity<StorePresenter, ActivityStoreBin
mViewBinding.setOrderPayAmt(saleorder.getOrderPayAmt()); mViewBinding.setOrderPayAmt(saleorder.getOrderPayAmt());
mViewBinding.setMsDisAmt(saleorder.getMsDisAmt()); mViewBinding.setMsDisAmt(saleorder.getMsDisAmt());
if (mCartDialog.isShowing) mCartDialog.loadSaleorder(saleorder); if (mCartDialog.isShowing) mCartDialog.loadSaleorder(saleorder);
this.startShakeByPropertyAnim(mViewBinding.ivCart, 0.75f, 1f, 0.30f, 500L); this.startShakeByPropertyAnim(mViewBinding.ivCart, 0.75f, 1f, 300L);
} }
private void startShakeByPropertyAnim(View view, float scaleSmall, float scaleLarge, float shakeDegrees, long duration) {
if (view == null) {
return;
}
//先变小后变大
PropertyValuesHolder scaleXValuesHolder = PropertyValuesHolder.ofKeyframe(View.SCALE_X,
Keyframe.ofFloat(0f, 1.0f),
Keyframe.ofFloat(0.25f, scaleSmall),
Keyframe.ofFloat(0.5f, scaleLarge),
Keyframe.ofFloat(0.75f, scaleLarge),
Keyframe.ofFloat(1.0f, 1.0f)
);
PropertyValuesHolder scaleYValuesHolder = PropertyValuesHolder.ofKeyframe(View.SCALE_Y,
Keyframe.ofFloat(0f, 1.0f),
Keyframe.ofFloat(0.25f, scaleSmall),
Keyframe.ofFloat(0.5f, scaleLarge),
Keyframe.ofFloat(0.75f, scaleLarge),
Keyframe.ofFloat(1.0f, 1.0f)
);
//先往左再往右
PropertyValuesHolder rotateValuesHolder = PropertyValuesHolder.ofKeyframe(View.ROTATION,
Keyframe.ofFloat(0f, 0f),
Keyframe.ofFloat(0.1f, -shakeDegrees),
Keyframe.ofFloat(0.2f, shakeDegrees),
Keyframe.ofFloat(0.3f, -shakeDegrees),
Keyframe.ofFloat(0.4f, shakeDegrees),
Keyframe.ofFloat(0.5f, -shakeDegrees),
Keyframe.ofFloat(0.6f, shakeDegrees),
Keyframe.ofFloat(0.7f, -shakeDegrees),
Keyframe.ofFloat(0.8f, shakeDegrees),
Keyframe.ofFloat(0.9f, -shakeDegrees),
Keyframe.ofFloat(1.0f, 0f)
);
ObjectAnimator objectAnimator = ObjectAnimator.ofPropertyValuesHolder(view, scaleXValuesHolder, scaleYValuesHolder, rotateValuesHolder);
objectAnimator.setDuration(duration);
objectAnimator.start();
}
@Override @Override
public void loadSaledetails(List<Saledetail> saledetails, boolean isRefresh) { public void loadSaledetails(List<Saledetail> saledetails, boolean isRefresh) {
...@@ -225,4 +175,36 @@ public class StoreActivity extends BaseActivity<StorePresenter, ActivityStoreBin ...@@ -225,4 +175,36 @@ public class StoreActivity extends BaseActivity<StorePresenter, ActivityStoreBin
mScanFragment.resetScanner(); mScanFragment.resetScanner();
} }
/**
* 执行抖动动画
*
* @param view 要执行的view
* @param scaleSmall 缩小比例
* @param scaleLarge 放大比例
* @param duration 时间
*/
private void startShakeByPropertyAnim(View view, float scaleSmall, float scaleLarge, long duration) {
if (view == null) {
return;
}
//先变小后变大
PropertyValuesHolder scaleXValuesHolder = PropertyValuesHolder.ofKeyframe(View.SCALE_X,
Keyframe.ofFloat(0f, 1.0f),
Keyframe.ofFloat(0.25f, scaleSmall),
Keyframe.ofFloat(0.5f, scaleLarge),
Keyframe.ofFloat(0.75f, scaleLarge),
Keyframe.ofFloat(1.0f, 1.0f)
);
PropertyValuesHolder scaleYValuesHolder = PropertyValuesHolder.ofKeyframe(View.SCALE_Y,
Keyframe.ofFloat(0f, 1.0f),
Keyframe.ofFloat(0.25f, scaleSmall),
Keyframe.ofFloat(0.5f, scaleLarge),
Keyframe.ofFloat(0.75f, scaleLarge),
Keyframe.ofFloat(1.0f, 1.0f)
);
ObjectAnimator objectAnimator = ObjectAnimator.ofPropertyValuesHolder(view, scaleXValuesHolder, scaleYValuesHolder);
objectAnimator.setDuration(duration);
objectAnimator.start();
}
} }
...@@ -211,7 +211,7 @@ public class StorePresenter extends StoreContract.Presenter { ...@@ -211,7 +211,7 @@ public class StorePresenter extends StoreContract.Presenter {
sskugrp = new Sskugrp(); sskugrp = new Sskugrp();
sskugrp.setSkuGrpId(0L); sskugrp.setSkuGrpId(0L);
sskugrp.setSkuGrpName("全部分组"); sskugrp.setSkuGrpName("全部商品");
sskugrp.setSelected(true); sskugrp.setSelected(true);
sskugrps.add(0, sskugrp); sskugrps.add(0, sskugrp);
......
...@@ -263,7 +263,6 @@ public class StoreFragment extends BaseFragment<StorePresenter, FragmentStoreBin ...@@ -263,7 +263,6 @@ public class StoreFragment extends BaseFragment<StorePresenter, FragmentStoreBin
float toX = endLoc[0] - parentLocation[0]; float toX = endLoc[0] - parentLocation[0];
float toY = endLoc[1] - parentLocation[1]; float toY = endLoc[1] - parentLocation[1];
// 开始绘制贝塞尔曲线 // 开始绘制贝塞尔曲线
Path path = new Path(); Path path = new Path();
// 移动到起始点(贝塞尔曲线的起点) // 移动到起始点(贝塞尔曲线的起点)
...@@ -275,7 +274,7 @@ public class StoreFragment extends BaseFragment<StorePresenter, FragmentStoreBin ...@@ -275,7 +274,7 @@ public class StoreFragment extends BaseFragment<StorePresenter, FragmentStoreBin
// 属性动画实现(从0到贝塞尔曲线的长度之间进行插值计算,获取中间过程的距离值) // 属性动画实现(从0到贝塞尔曲线的长度之间进行插值计算,获取中间过程的距离值)
ValueAnimator valueAnimator = ValueAnimator.ofFloat(0, mPathMeasure.getLength()); ValueAnimator valueAnimator = ValueAnimator.ofFloat(0, mPathMeasure.getLength());
valueAnimator.setDuration(500); valueAnimator.setDuration(300);
// 匀速线性插值器 // 匀速线性插值器
valueAnimator.setInterpolator(new LinearInterpolator()); valueAnimator.setInterpolator(new LinearInterpolator());
......
...@@ -6,17 +6,6 @@ import java.math.BigDecimal; ...@@ -6,17 +6,6 @@ import java.math.BigDecimal;
public class ConvertUtil { public class ConvertUtil {
// /**
// * 分转元
// *
// * @param fen 分
// * @return 元
// */
// public static String fenToYuan(Long fen) {
// BigDecimal decimal = new BigDecimal(fen);
// return decimal.divide(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_DOWN).toString();
// }
/** /**
* 分转元 * 分转元
* *
...@@ -25,10 +14,22 @@ public class ConvertUtil { ...@@ -25,10 +14,22 @@ public class ConvertUtil {
*/ */
public static String fenToYuan(Long fen) { public static String fenToYuan(Long fen) {
if (fen == null || fen == 0) return "0.00"; if (fen == null || fen == 0) return "0.00";
java.text.DecimalFormat df = new java.text.DecimalFormat("#.00"); BigDecimal decimal = new BigDecimal(fen);
return String.valueOf(df.format((double) fen / 100)); return decimal.divide(new BigDecimal(100), 2, BigDecimal.ROUND_DOWN).toString();
} }
// /**
// * 分转元
// *
// * @param fen 分
// * @return 元
// */
// public static String fenToYuan(Long fen) {
// if (fen == null || fen == 0) return "0.00";
// java.text.DecimalFormat df = new java.text.DecimalFormat("#.00");
// return String.valueOf(df.format((double) fen / 100));
// }
/** /**
* 分转元 * 分转元
......
...@@ -2,6 +2,6 @@ ...@@ -2,6 +2,6 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android"> <shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="@dimen/all_shape_radius" /> <corners android:radius="@dimen/all_shape_radius" />
<solid android:color="@color/gray_kongming" /> <solid android:color="@color/gray_zhouyu" />
</shape> </shape>
\ No newline at end of file
...@@ -39,7 +39,7 @@ ...@@ -39,7 +39,7 @@
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_marginEnd="@dimen/all_margin" android:layout_marginEnd="@dimen/all_margin"
android:visibility="@{titleMode==1||titleMode==6?8:0}" android:visibility="@{titleMode==1||titleMode==6||titleMode==8?8:0}"
app:layout_constraintBottom_toTopOf="parent" app:layout_constraintBottom_toTopOf="parent"
app:layout_constraintLeft_toRightOf="@id/btn_back" app:layout_constraintLeft_toRightOf="@id/btn_back"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintRight_toRightOf="parent"
...@@ -66,10 +66,24 @@ ...@@ -66,10 +66,24 @@
android:text="@string/sssku_title" android:text="@string/sssku_title"
android:textColor="@color/black_baozheng" android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_sub_title_size" android:textSize="@dimen/all_sub_title_size"
android:visibility="@{titleMode==1||titleMode==6?0:8}" android:visibility="@{titleMode==1||titleMode==6||titleMode==8?0:8}"
app:layout_constraintLeft_toRightOf="parent" app:layout_constraintLeft_toRightOf="parent"
app:layout_constraintRight_toLeftOf="parent" /> app:layout_constraintRight_toLeftOf="parent" />
<TextView
android:id="@+id/tv_editor_hint"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/all_spacing"
android:paddingBottom="@dimen/all_shape_radius"
android:paddingEnd="@dimen/all_spacing"
android:paddingStart="@dimen/all_spacing"
android:paddingTop="@dimen/all_shape_radius"
android:textColor="@color/white_caocao"
android:visibility="@{titleMode==8?0:8}"
app:layout_constraintBottom_toTopOf="@id/tv_title"
app:layout_constraintLeft_toRightOf="@id/tv_title"
app:layout_constraintTop_toBottomOf="@id/tv_title" />
<ImageButton <ImageButton
android:id="@+id/btn_menu" android:id="@+id/btn_menu"
...@@ -83,7 +97,6 @@ ...@@ -83,7 +97,6 @@
android:visibility="@{titleMode==6?0:8}" android:visibility="@{titleMode==6?0:8}"
app:layout_constraintRight_toRightOf="parent" /> app:layout_constraintRight_toRightOf="parent" />
<View <View
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width" android:layout_height="@dimen/all_line_width"
......
...@@ -3,28 +3,36 @@ ...@@ -3,28 +3,36 @@
xmlns:app="http://schemas.android.com/apk/res-auto"> xmlns:app="http://schemas.android.com/apk/res-auto">
<LinearLayout <LinearLayout
android:layout_width="wrap_content" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@color/white_caocao" android:background="@color/white_caocao"
android:orientation="vertical"> android:gravity="center"
android:orientation="horizontal">
<TextView <TextView
android:layout_width="match_parent" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/all_margin" android:layout_marginBottom="@dimen/all_margin_big"
android:gravity="center" android:layout_marginTop="@dimen/all_margin_big"
android:text="提示" android:text="确定删除"
android:textColor="@color/black_baozheng" android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_sub_title_size" android:textSize="@dimen/all_text_size" />
android:textStyle="bold" />
<TextView
android:id="@+id/tv_skugrp_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/all_margin_big"
android:layout_marginTop="@dimen/all_margin_big"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_text_size" />
<TextView <TextView
android:layout_width="match_parent" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/all_margin" android:layout_marginBottom="@dimen/all_margin_big"
android:layout_marginStart="@dimen/all_margin" android:layout_marginTop="@dimen/all_margin_big"
android:layout_marginTop="@dimen/all_margin" android:text="吗?"
android:text="确定删除吗?"
android:textColor="@color/black_baozheng" android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_text_size" /> android:textSize="@dimen/all_text_size" />
......
...@@ -74,12 +74,13 @@ ...@@ -74,12 +74,13 @@
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="?attr/actionBarSize" android:layout_height="?attr/actionBarSize"
android:background="@color/transparent" android:background="@color/transparent"
android:enabled="false"
android:gravity="center_vertical" android:gravity="center_vertical"
android:inputType="number" android:inputType="number"
android:labelFor="@+id/et_barcode" android:labelFor="@+id/et_barcode"
android:saveEnabled="false" android:saveEnabled="false"
android:textColor="@color/black_baozheng" android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_text_size" android:textSize="@dimen/all_body_size"
app:layout_constraintHorizontal_weight="3" app:layout_constraintHorizontal_weight="3"
app:layout_constraintLeft_toRightOf="@id/tv_barcode_hint" app:layout_constraintLeft_toRightOf="@id/tv_barcode_hint"
app:layout_constraintRight_toRightOf="parent" /> app:layout_constraintRight_toRightOf="parent" />
...@@ -117,7 +118,7 @@ ...@@ -117,7 +118,7 @@
android:labelFor="@+id/et_name" android:labelFor="@+id/et_name"
android:saveEnabled="false" android:saveEnabled="false"
android:textColor="@color/black_baozheng" android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_text_size" android:textSize="@dimen/all_body_size"
app:layout_constraintLeft_toLeftOf="@id/et_barcode" app:layout_constraintLeft_toLeftOf="@id/et_barcode"
app:layout_constraintRight_toRightOf="@id/et_barcode" app:layout_constraintRight_toRightOf="@id/et_barcode"
app:layout_constraintTop_toBottomOf="@id/et_barcode" /> app:layout_constraintTop_toBottomOf="@id/et_barcode" />
...@@ -187,7 +188,7 @@ ...@@ -187,7 +188,7 @@
android:gravity="center_vertical" android:gravity="center_vertical"
android:saveEnabled="false" android:saveEnabled="false"
android:textColor="@color/black_baozheng" android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_text_size" android:textSize="@dimen/all_body_size"
app:layout_constraintHorizontal_weight="1.5" app:layout_constraintHorizontal_weight="1.5"
app:layout_constraintLeft_toRightOf="@id/tv_type_hint" app:layout_constraintLeft_toRightOf="@id/tv_type_hint"
app:layout_constraintRight_toLeftOf="@id/ns_type_2" /> app:layout_constraintRight_toLeftOf="@id/ns_type_2" />
...@@ -199,7 +200,7 @@ ...@@ -199,7 +200,7 @@
android:gravity="center_vertical" android:gravity="center_vertical"
android:saveEnabled="false" android:saveEnabled="false"
android:textColor="@color/black_baozheng" android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_text_size" android:textSize="@dimen/all_body_size"
app:layout_constraintHorizontal_weight="1.5" app:layout_constraintHorizontal_weight="1.5"
app:layout_constraintLeft_toRightOf="@id/ns_type_1" app:layout_constraintLeft_toRightOf="@id/ns_type_1"
app:layout_constraintRight_toRightOf="parent" /> app:layout_constraintRight_toRightOf="parent" />
...@@ -211,7 +212,7 @@ ...@@ -211,7 +212,7 @@
android:gravity="center_vertical" android:gravity="center_vertical"
android:saveEnabled="false" android:saveEnabled="false"
android:textColor="@color/black_baozheng" android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_text_size" android:textSize="@dimen/all_body_size"
app:layout_constraintLeft_toLeftOf="@id/ns_type_1" app:layout_constraintLeft_toLeftOf="@id/ns_type_1"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/ns_type_1" /> app:layout_constraintTop_toBottomOf="@id/ns_type_1" />
...@@ -247,7 +248,7 @@ ...@@ -247,7 +248,7 @@
android:gravity="center_vertical" android:gravity="center_vertical"
android:saveEnabled="false" android:saveEnabled="false"
android:textColor="@color/black_baozheng" android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_text_size" /> android:textSize="@dimen/all_body_size" />
<TextView <TextView
android:id="@+id/tv_unit" android:id="@+id/tv_unit"
...@@ -289,7 +290,7 @@ ...@@ -289,7 +290,7 @@
android:layout_weight="3" android:layout_weight="3"
android:saveEnabled="false" android:saveEnabled="false"
android:textColor="@color/black_baozheng" android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_text_size" /> android:textSize="@dimen/all_body_size" />
</LinearLayout> </LinearLayout>
<View <View
...@@ -339,7 +340,7 @@ ...@@ -339,7 +340,7 @@
android:labelFor="@+id/et_price1" android:labelFor="@+id/et_price1"
android:saveEnabled="false" android:saveEnabled="false"
android:textColor="@color/black_baozheng" android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_text_size" /> android:textSize="@dimen/all_body_size" />
</LinearLayout> </LinearLayout>
<View <View
...@@ -375,7 +376,7 @@ ...@@ -375,7 +376,7 @@
android:labelFor="@+id/et_price2" android:labelFor="@+id/et_price2"
android:saveEnabled="false" android:saveEnabled="false"
android:textColor="@color/black_baozheng" android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_text_size" /> android:textSize="@dimen/all_body_size" />
</LinearLayout> </LinearLayout>
<View <View
...@@ -491,7 +492,7 @@ ...@@ -491,7 +492,7 @@
android:labelFor="@+id/et_point" android:labelFor="@+id/et_point"
android:saveEnabled="false" android:saveEnabled="false"
android:textColor="@color/black_baozheng" android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_text_size" /> android:textSize="@dimen/all_body_size" />
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
...@@ -594,7 +595,7 @@ ...@@ -594,7 +595,7 @@
android:id="@+id/et_search" android:id="@+id/et_search"
style="@style/searchBarEditor" style="@style/searchBarEditor"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="30dp"
android:layout_marginEnd="@dimen/all_margin" android:layout_marginEnd="@dimen/all_margin"
android:layout_marginStart="@dimen/all_margin" android:layout_marginStart="@dimen/all_margin"
android:layout_marginTop="@dimen/all_spacing" android:layout_marginTop="@dimen/all_spacing"
...@@ -748,7 +749,7 @@ ...@@ -748,7 +749,7 @@
android:layout_weight="3" android:layout_weight="3"
android:saveEnabled="false" android:saveEnabled="false"
android:textColor="@color/black_baozheng" android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_text_size" /> android:textSize="@dimen/all_body_size" />
</LinearLayout> </LinearLayout>
<View <View
...@@ -838,7 +839,7 @@ ...@@ -838,7 +839,7 @@
android:labelFor="@+id/et_cost" android:labelFor="@+id/et_cost"
android:saveEnabled="false" android:saveEnabled="false"
android:textColor="@color/black_baozheng" android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_text_size" /> android:textSize="@dimen/all_body_size" />
</LinearLayout> </LinearLayout>
<View <View
...@@ -874,7 +875,7 @@ ...@@ -874,7 +875,7 @@
android:labelFor="@+id/et_stock_low_limit" android:labelFor="@+id/et_stock_low_limit"
android:saveEnabled="false" android:saveEnabled="false"
android:textColor="@color/black_baozheng" android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_text_size" /> android:textSize="@dimen/all_body_size" />
</LinearLayout> </LinearLayout>
<View <View
...@@ -910,7 +911,7 @@ ...@@ -910,7 +911,7 @@
android:labelFor="@+id/et_stock_upper_limit" android:labelFor="@+id/et_stock_upper_limit"
android:saveEnabled="false" android:saveEnabled="false"
android:textColor="@color/black_baozheng" android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_text_size" /> android:textSize="@dimen/all_body_size" />
</LinearLayout> </LinearLayout>
<View <View
...@@ -946,7 +947,7 @@ ...@@ -946,7 +947,7 @@
android:labelFor="@+id/et_min_oder" android:labelFor="@+id/et_min_oder"
android:saveEnabled="false" android:saveEnabled="false"
android:textColor="@color/black_baozheng" android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_text_size" /> android:textSize="@dimen/all_body_size" />
</LinearLayout> </LinearLayout>
<View <View
......
...@@ -52,10 +52,17 @@ ...@@ -52,10 +52,17 @@
android:background="@color/gray_huanggai" android:background="@color/gray_huanggai"
android:visibility="@{visibility}" /> android:visibility="@{visibility}" />
<android.support.v7.widget.RecyclerView <android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/rl_skugrp" android:id="@+id/srl_skugrp"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" /> android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
android:id="@+id/rl_skugrp"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</android.support.v4.widget.SwipeRefreshLayout>
</LinearLayout> </LinearLayout>
</layout> </layout>
\ No newline at end of file
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
android:foreground="?android:attr/selectableItemBackground"> android:foreground="?android:attr/selectableItemBackground">
<View <View
android:layout_width="@dimen/all_spacing" android:layout_width="@dimen/all_shape_radius"
android:layout_height="@dimen/all_sub_title_size" android:layout_height="@dimen/all_sub_title_size"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
android:background="@color/red_guanyu" android:background="@color/red_guanyu"
......
...@@ -325,8 +325,8 @@ ...@@ -325,8 +325,8 @@
<!--营销计划--> <!--营销计划-->
<string name="ms_title">营销计划</string> <string name="ms_title">营销计划</string>
<string name="ms_add">添加营销计划</string> <string name="ms_add">添加营销计划</string>
<string name="ms_user_title">旗舰</string> <string name="ms_user_title">高级</string>
<string name="ms_user_hint">营销计划功能限时免费使用 3 个月</string> <string name="ms_user_hint">营销计划功能限时免费使用 1 个月</string>
<string name="ms_count">共%s个营销计划</string> <string name="ms_count">共%s个营销计划</string>
<string name="ms_search_hint">请输入活动名称</string> <string name="ms_search_hint">请输入活动名称</string>
<string name="ms_empty_hint">没有搜到此计划\n请重新搜索,或点击添加按钮进行添加~</string> <string name="ms_empty_hint">没有搜到此计划\n请重新搜索,或点击添加按钮进行添加~</string>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment