提交 1270eca3 authored 作者: lgd's avatar lgd

1.往来列表

2.//TODO erp用户激活,忘记密码测试,上下架需要在调试,产品下单还缺几个参数,bat,mes,消息,我的,刷新token
上级 c6575ec8
...@@ -313,7 +313,14 @@ ...@@ -313,7 +313,14 @@
android:screenOrientation="portrait" android:screenOrientation="portrait"
android:theme="@style/Work.Base" android:theme="@style/Work.Base"
android:windowSoftInputMode="adjustPan" /> android:windowSoftInputMode="adjustPan" />
<activity
android:name=".ui.activity.bat.work.WorkContactsActivity"
android:configChanges="keyboardHidden|orientation"
android:label="往來"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:theme="@style/Work.Base"
android:windowSoftInputMode="adjustPan" />
<provider <provider
android:name="androidx.core.content.FileProvider" android:name="androidx.core.content.FileProvider"
android:authorities="com.wd.workoffice.fileprovider" android:authorities="com.wd.workoffice.fileprovider"
......
package com.wd.workoffice.contract;
import com.wd.workoffice.app.BaseBean;
import com.wd.workoffice.bean.ContactsBean;
import com.wd.workoffice.bean.ProductBean;
import java.util.List;
import java.util.Map;
import flexible.xd.android_base.mvpBase.IBaseModel;
import flexible.xd.android_base.mvpBase.IBasePresenter;
import flexible.xd.android_base.mvpBase.IBaseView;
import io.reactivex.Observable;
/**
* author : flexible
* email : lgd19940421@163.com
* github: https://github.com/FlexibleXd
**/
public interface WorkContactsContract {
interface Model extends IBaseModel {
Observable<BaseBean> getData(Map<String, Object> param);
}
interface View extends IBaseView {
void getData(List<ContactsBean.RecordsBean> dataList);
}
interface Presenter extends IBasePresenter<View> {
void getData(Map<String, Object> param);
}
}
package com.wd.workoffice.model;
import com.wd.workoffice.app.BaseBean;
import com.wd.workoffice.contract.WorkContactsContract;
import com.wd.workoffice.retrofit.RtfUtils;
import java.util.Map;
import io.reactivex.Observable;
/**
* author : flexible
* email : lgd19940421@163.com
* github: https://github.com/FlexibleXd
**/
public class WorkContactsModel implements WorkContactsContract.Model {
public static WorkContactsModel newInstance() {
return new WorkContactsModel();
}
@Override
public Observable<BaseBean> getData(Map<String, Object> param) {
return RtfUtils.getRtf().getContacts(param);
}
}
package com.wd.workoffice.presenter;
import com.alibaba.fastjson.JSON;
import com.wd.workoffice.app.BaseBean;
import com.wd.workoffice.bean.ContactsBean;
import com.wd.workoffice.bean.ProductBean;
import com.wd.workoffice.contract.WorkContactsContract;
import com.wd.workoffice.contract.WorkProContract;
import com.wd.workoffice.model.WorkContactsModel;
import com.wd.workoffice.retrofit.WorkObserver;
import java.util.Map;
import flexible.xd.android_base.mvpBase.BasePresenter;
import flexible.xd.android_base.network.rtfhttp.Transformer;
import io.reactivex.disposables.Disposable;
/**
* author : flexible
* email : lgd19940421@163.com
* github: https://github.com/FlexibleXd
**/
public class WorkContactsPresenter extends BasePresenter<WorkContactsContract.View, WorkContactsContract.Model> implements WorkContactsContract.Presenter {
@Override
public void getData(Map<String, Object> param) {
mView.showLoading();
mModel.getData(param).compose(Transformer.schedule()).subscribe(new WorkObserver<BaseBean>() {
@Override
public void doOnSubscribe(Disposable d) {
mDisposable.add(d);
}
@Override
public void onFail(String errorMsg) {
mView.hideLoading();
mView.onError(errorMsg);
}
@Override
public void onSuccess(BaseBean data) {
mView.hideLoading();
if (data.getCode() != 0) {
mView.onError(data.getMessage());
return;
}
mView.getData(JSON.parseArray(JSON.parseObject(data.getData().toString()).getString("records"), ContactsBean.RecordsBean.class));
}
});
}
@Override
public WorkContactsContract.Model bindModel() {
return WorkContactsModel.newInstance();
}
}
...@@ -424,6 +424,20 @@ public interface ApiService { ...@@ -424,6 +424,20 @@ public interface ApiService {
@POST("saleOrder/start") @POST("saleOrder/start")
Observable<BaseBean> submitSaleOrder(@Body RequestBody requestBody); Observable<BaseBean> submitSaleOrder(@Body RequestBody requestBody);
/**
* 获取客户分厂
* @param param
* @return
*/
@GET("/customer-branch-factory/page/init") @GET("/customer-branch-factory/page/init")
Observable<BaseBean> getClientFactory(@QueryMap Map<String, Object> param); Observable<BaseBean> getClientFactory(@QueryMap Map<String, Object> param);
/**
* app端往来单位分页列表
* @param param
* @return
*/
@GET("/transitpart/app/page/list")
Observable<BaseBean> getContacts(@QueryMap Map<String, Object> param);
} }
package com.wd.workoffice.ui.activity.bat.work;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import com.google.android.material.tabs.TabLayout;
import com.wd.workoffice.R;
import com.wd.workoffice.app.WorkToolBarActivity;
import com.wd.workoffice.ui.adapter.VpDataAdapter;
import com.wd.workoffice.ui.fg.WorkContactsFragment;
import com.wd.workoffice.ui.fg.WorkProFragment;
import java.util.ArrayList;
import java.util.List;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.viewpager.widget.ViewPager;
import butterknife.BindView;
import butterknife.ButterKnife;
/**
* 工作台 - 产品
* author : flexible
* email : lgd19940421@163.com
* github: https://github.com/FlexibleXd
**/
public class WorkContactsActivity extends WorkToolBarActivity {
@BindView(R.id.tl_tab)
TabLayout tlTab;
@BindView(R.id.vp_data)
ViewPager vpData;
private String tab[] = {"供应商", "客户", "物流公司"};
private String ofKind[] = {"供应商", "客户", "物流公司"};
// private String ofKind[] = {"SUPPLIER", "CUSTOMER", "TRANSPORTERS"};
@Override
protected void initView() {
ButterKnife.bind(this);
tlTab.setupWithViewPager(vpData);
}
@Override
protected void initData() {
FragmentManager sfm = getSupportFragmentManager();
List<Fragment> data = new ArrayList<>();
for (int i = 0; i < tab.length; i++) {
WorkContactsFragment saleFragment = new WorkContactsFragment();
Bundle bundle = new Bundle();
bundle.putString("partTypeNames", ofKind[i]);
saleFragment.setArguments(bundle);
data.add(saleFragment);
}
VpDataAdapter vpFgAdapter = new VpDataAdapter(sfm, data);
vpData.setAdapter(vpFgAdapter);
for (int i = 0; i < tab.length; i++) {
tlTab.getTabAt(i).setText(tab[i]);
}
}
@Override
protected void initEvent() {
}
@Override
protected int layoutId() {
return R.layout.activity_pro;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_search, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.search:
startActivity(WorkProSearchActivity.class);
break;
}
return super.onOptionsItemSelected(item);
}
}
package com.wd.workoffice.ui.adapter;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.wd.workoffice.R;
import com.wd.workoffice.bean.ContactsBean;
import com.wd.workoffice.bean.ProductBean;
import java.util.List;
/**
* Created by flexible on 2018/8/13.
*/
public class WorkContactsAdapter extends BaseQuickAdapter<ContactsBean.RecordsBean, BaseViewHolder> {
public WorkContactsAdapter(int layoutResId, List data) {
super(layoutResId, data);
}
@Override
protected void convert(BaseViewHolder helper, ContactsBean.RecordsBean item) {
helper.setText(R.id.tv_name, item.getName());
helper.setText(R.id.tv_address, item.getAddress());
helper.setText(R.id.tv_phone, item.getPhone());
}
}
...@@ -24,6 +24,7 @@ import com.wd.workoffice.ui.activity.bat.sale.SaleInsideOrderActivity; ...@@ -24,6 +24,7 @@ import com.wd.workoffice.ui.activity.bat.sale.SaleInsideOrderActivity;
import com.wd.workoffice.ui.activity.bat.sale.SaleOutOrderActivity; import com.wd.workoffice.ui.activity.bat.sale.SaleOutOrderActivity;
import com.wd.workoffice.ui.activity.bat.sale.SaleSaleOrderActivity; import com.wd.workoffice.ui.activity.bat.sale.SaleSaleOrderActivity;
import com.wd.workoffice.ui.activity.bat.sale.SaleSupplierOrderActivity; import com.wd.workoffice.ui.activity.bat.sale.SaleSupplierOrderActivity;
import com.wd.workoffice.ui.activity.bat.work.WorkContactsActivity;
import com.wd.workoffice.ui.activity.bat.work.WorkProActivity; import com.wd.workoffice.ui.activity.bat.work.WorkProActivity;
import com.wd.workoffice.ui.adapter.BatLayoutAdapter; import com.wd.workoffice.ui.adapter.BatLayoutAdapter;
import com.wd.workoffice.util.UserKeeper; import com.wd.workoffice.util.UserKeeper;
...@@ -244,6 +245,7 @@ public class MainFragment extends WorkBaseFg { ...@@ -244,6 +245,7 @@ public class MainFragment extends WorkBaseFg {
startActivity(WorkProActivity.class); startActivity(WorkProActivity.class);
break; break;
case 1: case 1:
startActivity(WorkContactsActivity.class);
break; break;
case 2: case 2:
break; break;
......
...@@ -56,6 +56,8 @@ public class ProOutFragment extends WorkBaseFg implements SaleSaleContract.View ...@@ -56,6 +56,8 @@ public class ProOutFragment extends WorkBaseFg implements SaleSaleContract.View
param.put("orderStatus", state); param.put("orderStatus", state);
param.put("current", page); param.put("current", page);
param.put("identity", identity); param.put("identity", identity);
page = 1;
param.put("current", page);
saleSalePresenter.getOutOrder(param); saleSalePresenter.getOutOrder(param);
} }
......
...@@ -56,6 +56,8 @@ public class ProSaleFragment extends WorkBaseFg implements SaleSaleContract.View ...@@ -56,6 +56,8 @@ public class ProSaleFragment extends WorkBaseFg implements SaleSaleContract.View
param.put("orderStatus", state); param.put("orderStatus", state);
param.put("current", page); param.put("current", page);
param.put("identity", identity); param.put("identity", identity);
page = 1;
param.put("current", page);
saleSalePresenter.getOrder(param); saleSalePresenter.getOrder(param);
} }
......
...@@ -56,6 +56,8 @@ public class ProSupplierFragment extends WorkBaseFg implements SaleSaleContract. ...@@ -56,6 +56,8 @@ public class ProSupplierFragment extends WorkBaseFg implements SaleSaleContract.
param.put("orderStatus", state); param.put("orderStatus", state);
param.put("current", page); param.put("current", page);
param.put("identity", identity); param.put("identity", identity);
page = 1;
param.put("current", page);
saleSalePresenter.getSupplierOrder(param); saleSalePresenter.getSupplierOrder(param);
} }
......
...@@ -56,6 +56,8 @@ public class SaleInsideFragment extends WorkBaseFg implements SaleSaleContract.V ...@@ -56,6 +56,8 @@ public class SaleInsideFragment extends WorkBaseFg implements SaleSaleContract.V
param.put("orderStatus", state); param.put("orderStatus", state);
param.put("current", page); param.put("current", page);
param.put("identity", identity); param.put("identity", identity);
page = 1;
param.put("current", page);
saleSalePresenter.getInsideOrder(param); saleSalePresenter.getInsideOrder(param);
} }
......
...@@ -56,6 +56,8 @@ public class SaleOutFragment extends WorkBaseFg implements SaleSaleContract.View ...@@ -56,6 +56,8 @@ public class SaleOutFragment extends WorkBaseFg implements SaleSaleContract.View
param.put("orderStatus", state); param.put("orderStatus", state);
param.put("current", page); param.put("current", page);
param.put("identity", identity); param.put("identity", identity);
page = 1;
param.put("current", page);
saleSalePresenter.getOutOrder(param); saleSalePresenter.getOutOrder(param);
} }
......
...@@ -56,6 +56,8 @@ public class SaleSaleFragment extends WorkBaseFg implements SaleSaleContract.Vie ...@@ -56,6 +56,8 @@ public class SaleSaleFragment extends WorkBaseFg implements SaleSaleContract.Vie
param.put("orderStatus", state); param.put("orderStatus", state);
param.put("current", page); param.put("current", page);
param.put("identity", identity); param.put("identity", identity);
page = 1;
param.put("current", page);
saleSalePresenter.getOrder(param); saleSalePresenter.getOrder(param);
} }
......
...@@ -56,6 +56,8 @@ public class SaleSupplierFragment extends WorkBaseFg implements SaleSaleContract ...@@ -56,6 +56,8 @@ public class SaleSupplierFragment extends WorkBaseFg implements SaleSaleContract
param.put("orderStatus", state); param.put("orderStatus", state);
param.put("current", page); param.put("current", page);
param.put("identity", identity); param.put("identity", identity);
page = 1;
param.put("current", page);
saleSalePresenter.getSupplierOrder(param); saleSalePresenter.getSupplierOrder(param);
} }
......
package com.wd.workoffice.ui.fg;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import com.alibaba.fastjson.JSON;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.scwang.smartrefresh.layout.SmartRefreshLayout;
import com.wd.workoffice.R;
import com.wd.workoffice.app.WorkBaseFg;
import com.wd.workoffice.bean.ContactsBean;
import com.wd.workoffice.bean.ProductBean;
import com.wd.workoffice.bean.listener.ProFilterClickListener;
import com.wd.workoffice.contract.WorkContactsContract;
import com.wd.workoffice.contract.WorkProContract;
import com.wd.workoffice.presenter.WorkContactsPresenter;
import com.wd.workoffice.presenter.WorkProPresenter;
import com.wd.workoffice.ui.activity.bat.work.WorkProDetailActivity;
import com.wd.workoffice.ui.adapter.WorkContactsAdapter;
import com.wd.workoffice.ui.adapter.WorkProductAdapter;
import com.wd.workoffice.util.ProFilterData;
import com.wd.workoffice.util.WorkUtils;
import com.wd.workoffice.widget.DropDownMenu;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import butterknife.BindView;
import butterknife.ButterKnife;
/**
* author : flexible
* email : lgd19940421@163.com
* github: https://github.com/FlexibleXd
**/
public class WorkContactsFragment extends WorkBaseFg implements WorkContactsContract.View {
@BindView(R.id.rv_data)
RecyclerView rvData;
@BindView(R.id.srl_refresh)
SmartRefreshLayout srlRefresh;
private String partTypeNames;
private int page = 1;
private Map<String, Object> param;
private WorkContactsPresenter workProPresenter;
private WorkContactsAdapter workProductAdapter;
private List<ContactsBean.RecordsBean> dataList;
@Override
protected void initView() {
ButterKnife.bind(this, getContentView());
workProPresenter = new WorkContactsPresenter();
workProPresenter.onAttach(this);
rvData.setLayoutManager(new LinearLayoutManager(getActivity(), RecyclerView.VERTICAL, false));
}
@Override
protected void initData() {
param = WorkUtils.pageKey();
param.put("partTypeNames", partTypeNames);
page = 1;
param.put("current", page);
dataList = new ArrayList<>();
workProductAdapter = new WorkContactsAdapter(R.layout.item_work_contacts, dataList);
workProductAdapter.bindToRecyclerView(rvData);
workProductAdapter.setEmptyView(R.layout.view_empty_content, rvData);
workProPresenter.getData(param);
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle arguments = getArguments();
if (arguments != null) {
partTypeNames = arguments.getString("partTypeNames");
}
}
@Override
protected void initEvent() {
srlRefresh.setOnRefreshListener(refreshLayout -> {
page = 1;
param.put("current", page);
workProPresenter.getData(param);
});
workProductAdapter.setOnLoadMoreListener(() -> {
param.put("current", page);
workProPresenter.getData(param);
}, rvData);
workProductAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
@Override
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
// startActivity(WorkProDetailActivity.class, "pro", JSON.toJSONString(dataList.get(position)));
}
});
}
@Override
protected int layoutId() {
return R.layout.fg_work_contacts;
}
@Override
public void getData(List<ContactsBean.RecordsBean> data) {
if (page == 1) {
dataList.clear();
dataList.addAll(data);
workProductAdapter.notifyDataSetChanged();
workProductAdapter.loadMoreComplete();
srlRefresh.finishRefresh();
} else {
workProductAdapter.loadMoreComplete();
dataList.addAll(data);
workProductAdapter.notifyDataSetChanged();
}
if (data.size() == 0) {
workProductAdapter.loadMoreEnd();
} else {
page++;
}
}
}
...@@ -110,6 +110,8 @@ public class WorkProFragment extends WorkBaseFg implements WorkProContract.View ...@@ -110,6 +110,8 @@ public class WorkProFragment extends WorkBaseFg implements WorkProContract.View
protected void initData() { protected void initData() {
param = WorkUtils.pageKey(); param = WorkUtils.pageKey();
param.put("ofKind", ofKind); param.put("ofKind", ofKind);
page = 1;
param.put("current", page);
dataList = new ArrayList<>(); dataList = new ArrayList<>();
workProductAdapter = new WorkProductAdapter(R.layout.item_work_product, dataList); workProductAdapter = new WorkProductAdapter(R.layout.item_work_product, dataList);
workProductAdapter.bindToRecyclerView(rvData); workProductAdapter.bindToRecyclerView(rvData);
...@@ -216,7 +218,7 @@ public class WorkProFragment extends WorkBaseFg implements WorkProContract.View ...@@ -216,7 +218,7 @@ public class WorkProFragment extends WorkBaseFg implements WorkProContract.View
tvOk.setOnClickListener(new View.OnClickListener() { tvOk.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
workProPresenter.onSale(data.getId(),"down"); workProPresenter.onSale(data.getId(), "down");
addCartDialog.dismiss(); addCartDialog.dismiss();
} }
}); });
......
<?xml version="1.0" encoding="utf-8"?>
<com.scwang.smartrefresh.layout.SmartRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/srl_refresh"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_data"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</com.scwang.smartrefresh.layout.SmartRefreshLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10mm"
android:background="@color/white"
android:orientation="vertical"
android:paddingHorizontal="20mm"
android:paddingVertical="10mm">
<TextView
android:id="@+id/tv_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:textSize="16sp" />
<TextView
android:id="@+id/tv_phone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5mm"
android:textColor="@color/flexible_text_sup"
android:textSize="13sp" />
<TextView
android:id="@+id/tv_address"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5mm"
android:textColor="@color/flexible_text_sup"
android:textSize="13sp" />
</LinearLayout>
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论