Browse Source

b2b商务备份

raomeng 8 years ago
parent
commit
93ef417cfa
44 changed files with 2735 additions and 377 deletions
  1. 2 2
      WeiChat/build.gradle
  2. 3 3
      WeiChat/version.properties
  3. 22 2
      app_core/common/src/main/java/com/core/app/Constants.java
  4. 12 0
      app_core/common/src/main/java/com/core/base/fragment/BaseMVPFragment.java
  5. 18 2
      app_core/common/src/main/java/com/core/utils/CommonUtil.java
  6. 5 1
      app_core/common/src/main/java/com/core/widget/SearchActionView.java
  7. 1 1
      app_core/common/src/main/res/layout/view_net_error.xml
  8. 2 2
      app_core/network/src/main/java/com/me/network/app/base/HttpCallback.java
  9. 10 2
      app_core/network/src/main/java/com/me/network/app/http/HttpRequest.java
  10. 2 1
      app_modular/appworks/src/main/AndroidManifest.xml
  11. 0 20
      app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/activity/PurchaseDetailsActivity.java
  12. 4 1
      app_modular/appworks/src/main/java/com/uas/appworks/activity/B2BBusinessLoginActivity.java
  13. 332 13
      app_modular/appworks/src/main/java/com/uas/appworks/activity/B2BBusinessMainActivity.java
  14. 226 4
      app_modular/appworks/src/main/java/com/uas/appworks/activity/CustomerInquiryDetailActivity.java
  15. 53 15
      app_modular/appworks/src/main/java/com/uas/appworks/activity/CustomerInquiryListActivity.java
  16. 49 0
      app_modular/appworks/src/main/java/com/uas/appworks/activity/PublicInquiryDetailActivity.java
  17. 43 12
      app_modular/appworks/src/main/java/com/uas/appworks/activity/PublicInquiryListActivity.java
  18. 45 115
      app_modular/appworks/src/main/java/com/uas/appworks/activity/PurchaseOrderListActivity.java
  19. 119 11
      app_modular/appworks/src/main/java/com/uas/appworks/adapter/B2BDetailListAdapter.java
  20. 143 2
      app_modular/appworks/src/main/java/com/uas/appworks/adapter/B2BQuotePriceAdapter.java
  21. 65 1
      app_modular/appworks/src/main/java/com/uas/appworks/adapter/B2bBusinessListAdapter.java
  22. 304 17
      app_modular/appworks/src/main/java/com/uas/appworks/fragment/B2BBusinessListFragment.java
  23. 30 6
      app_modular/appworks/src/main/java/com/uas/appworks/model/WorkPlatModel.java
  24. 17 0
      app_modular/appworks/src/main/java/com/uas/appworks/model/bean/B2BBusinessListBean.java
  25. 40 0
      app_modular/appworks/src/main/java/com/uas/appworks/model/bean/B2BDetailListBean.java
  26. 758 0
      app_modular/appworks/src/main/java/com/uas/appworks/model/bean/B2BInquiryDetailBean.java
  27. 37 1
      app_modular/appworks/src/main/java/com/uas/appworks/model/bean/B2BQuotePriceBean.java
  28. 4 4
      app_modular/appworks/src/main/res/drawable/selector_b2b_list_item_bg.xml
  29. 6 3
      app_modular/appworks/src/main/res/drawable/shape_b2b_detail_edittext.xml
  30. 96 24
      app_modular/appworks/src/main/res/layout/activity_customer_inquiry_detail.xml
  31. 6 2
      app_modular/appworks/src/main/res/layout/activity_public_inquiry_detail.xml
  32. 13 37
      app_modular/appworks/src/main/res/layout/activity_tab_viewpager.xml
  33. 22 4
      app_modular/appworks/src/main/res/layout/fragment_b2b_list.xml
  34. 46 11
      app_modular/appworks/src/main/res/layout/layout_list_b2b_detail_edit.xml
  35. 6 5
      app_modular/appworks/src/main/res/layout/layout_list_b2b_detail_text.xml
  36. 5 4
      app_modular/appworks/src/main/res/layout/layout_list_b2b_white_detail_text.xml
  37. 61 12
      app_modular/appworks/src/main/res/layout/layout_list_customer_inquiry.xml
  38. 16 15
      app_modular/appworks/src/main/res/layout/layout_list_public_inquiry.xml
  39. 5 1
      app_modular/appworks/src/main/res/layout/layout_list_purchase_order.xml
  40. 83 21
      app_modular/appworks/src/main/res/layout/layout_list_subsection_quotation.xml
  41. 6 0
      app_modular/appworks/src/main/res/values-en/strings.xml
  42. 6 0
      app_modular/appworks/src/main/res/values-zh-rCN/strings.xml
  43. 6 0
      app_modular/appworks/src/main/res/values-zh-rTW/strings.xml
  44. 6 0
      app_modular/appworks/src/main/res/values/strings.xml

+ 2 - 2
WeiChat/build.gradle

@@ -120,7 +120,7 @@ android {
         flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
     }
 
-    /*applicationVariants.all { variant ->
+    applicationVariants.all { variant ->
         variant.outputs.each { output ->
             def outputFile = output.outputFile
             def fileName
@@ -142,7 +142,7 @@ android {
                 output.outputFile = new File(outputFile.parent, fileName)
             }
         }
-    }*/
+    }
 }
 
 dependencies {

+ 3 - 3
WeiChat/version.properties

@@ -1,5 +1,5 @@
-#Tue Jan 16 11:12:55 CST 2018
-debugName=435
+#Fri Jan 19 09:10:08 CST 2018
+debugName=513
 versionName=624
-debugCode=435
+debugCode=513
 versionCode=163

+ 22 - 2
app_core/common/src/main/java/com/core/app/Constants.java

@@ -474,7 +474,27 @@ public class Constants {
          */
         String B2B_COMPANY_BEAN = "b2b_company_bean";
 
-        String KEY_PURCHASE_ID="key_purchase_id";
-        String KEY_PURCHASE_STATUS="key_purchase_status";
+        String KEY_PURCHASE_ID = "key_purchase_id";
+        String KEY_PURCHASE_STATUS = "key_purchase_status";
+
+        String EXTRA_B2B_LIST_ID = "extra_b2b_list_id";
+        String EXTRA_B2B_LIST_STATE = "extra_b2b_list_state";
+        String EXTRA_B2B_LIST_JSON = "extra_b2b_list_json";
+
+        String STATE_PURCHASE_ORDER_TODO = "todo";
+        String STATE_PURCHASE_ORDER_END = "end";
+        String STATE_PURCHASE_ORDER_DONE = "done";
+
+        String STATE_CUSTOMER_INQUIRY_TODO = "todo";
+        String STATE_CUSTOMER_INQUIRY_DONE = "done";
+        String STATE_CUSTOMER_INQUIRY_AGREED = "agreed";
+        String STATE_CUSTOMER_INQUIRY_END = "end";
+        String STATE_CUSTOMER_INQUIRY_REFUSED = "refused";
+        String STATE_CUSTOMER_INQUIRY_INVALID = "invalid";
+
+    }
+
+    public interface CACHE {
+        String B2B_BUSINESS_ENUU = "b2b_business_enuu";
     }
 }

+ 12 - 0
app_core/common/src/main/java/com/core/base/fragment/BaseMVPFragment.java

@@ -188,6 +188,18 @@ public abstract class BaseMVPFragment<T extends BasePresenter> extends Fragment
         getActivity().overridePendingTransition(R.anim.anim_activity_in, R.anim.anim_activity_out);
     }
 
+    @Override
+    public void startActivity(Intent intent, @Nullable Bundle options) {
+        super.startActivity(intent, options);
+        getActivity().overridePendingTransition(R.anim.anim_activity_in, R.anim.anim_activity_out);
+    }
+
+    @Override
+    public void startActivityForResult(Intent intent, int requestCode, @Nullable Bundle options) {
+        super.startActivityForResult(intent, requestCode, options);
+        getActivity().overridePendingTransition(R.anim.anim_activity_in, R.anim.anim_activity_out);
+    }
+
     /**
      * [含有Bundle通过Class打开编辑界面]
      *

+ 18 - 2
app_core/common/src/main/java/com/core/utils/CommonUtil.java

@@ -137,6 +137,7 @@ public class CommonUtil {
     }
 
     private static final String TAG = "CommonUtil";
+
     /**
      * B2B身份session
      *
@@ -145,7 +146,7 @@ public class CommonUtil {
      */
     public static String getB2BSession(Context ct) {
         if (ct == null) {
-            LogUtil.d(TAG,"ct ==null");
+            LogUtil.d(TAG, "ct ==null");
             return "";
         }
         return getSharedPreferences(ct, Constants.B2B_SESSION_CACHE) == null ? "" : getSharedPreferences(ct, Constants.B2B_SESSION_CACHE);
@@ -529,7 +530,6 @@ public class CommonUtil {
     }
 
 
-
     /**
      * 获得当前包的版本号 return
      **/
@@ -1143,6 +1143,22 @@ public class CommonUtil {
 
     }
 
+    /**
+     * 是否控件重复点击
+     *
+     * @return
+     */
+    public static boolean isRepeatClick(long time) {
+        long currentTime = System.currentTimeMillis();
+        long intervals = currentTime - mLastClickTime;
+        if (intervals > 0 && intervals < time) {
+            return true;
+        }
+        mLastClickTime = currentTime;
+        return false;
+
+    }
+
     /**
      * EditText竖直方向是否可以滚动
      *

+ 5 - 1
app_core/common/src/main/java/com/core/widget/SearchActionView.java

@@ -18,7 +18,7 @@ import com.core.utils.CommonUtil;
 
 /**
  * @author RaoMeng
- * @describe
+ * @describe 带搜索框以及右侧菜单的actionview
  * @date 2017/12/22 10:17
  */
 
@@ -127,6 +127,10 @@ public class SearchActionView extends FrameLayout {
         mSearchEditText.setHint(hint);
     }
 
+    public String getText() {
+        return mSearchEditText.getText().toString();
+    }
+
     public interface OnVoiceCompleteListener {
         void onVoiceComplete();
     }

+ 1 - 1
app_core/common/src/main/res/layout/view_net_error.xml

@@ -16,7 +16,7 @@
             android:layout_centerInParent="true"
             android:layout_marginTop="16dp"
             android:drawableTop="@drawable/ic_empty"
-            android:text="@string/common_list_empty"
+            android:text="@string/networks_out"
             android:textAppearance="?android:attr/textAppearanceMedium"
             android:textColor="@color/gray_light" />
 

+ 2 - 2
app_core/network/src/main/java/com/me/network/app/base/HttpCallback.java

@@ -8,7 +8,7 @@ package com.me.network.app.base;
 
 public interface HttpCallback<T> {
 
-    void onSuccess(int flag, T t);
+    void onSuccess(int flag, T t) throws Exception;
 
-    void onFail(int flag, String failStr);
+    void onFail(int flag, String failStr) throws Exception;
 }

+ 10 - 2
app_core/network/src/main/java/com/me/network/app/http/HttpRequest.java

@@ -68,7 +68,11 @@ public class HttpRequest {
                 .build(), new ResultSubscriber<Object>(new Result2Listener<Object>() {
             @Override
             public void onResponse(Object response) {
-                callback.onSuccess(httpParams.getFlag(), response == null ? "" : response);
+                try {
+                    callback.onSuccess(httpParams.getFlag(), response == null ? "" : response);
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
             }
 
             @Override
@@ -86,7 +90,11 @@ public class HttpRequest {
                         failMsg = result;
                     }
                 }
-                callback.onFail(httpParams.getFlag(), failMsg);
+                try {
+                    callback.onFail(httpParams.getFlag(), failMsg);
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
             }
         }));
     }

+ 2 - 1
app_modular/appworks/src/main/AndroidManifest.xml

@@ -401,7 +401,8 @@
             android:theme="@style/StyledBlueIndicators"
             android:windowSoftInputMode="adjustPan|stateHidden" />
         <activity android:name=".activity.PublicInquiryDetailActivity" />
-        <activity android:name=".OA.platform.activity.PurchaseDetailsActivity"/>
+        <activity android:name=".activity.CustomerInquiryDetailActivity"/>
+        <activity android:name=".OA.platform.activity.PurchaseDetailsActivity" />
     </application>
 
 </manifest>

+ 0 - 20
app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/activity/PurchaseDetailsActivity.java

@@ -1,36 +1,19 @@
 package com.uas.appworks.OA.platform.activity;
 
-import android.app.Activity;
 import android.content.Intent;
-import android.support.v7.widget.AppCompatButton;
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
-import android.text.Editable;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.BaseAdapter;
-import android.widget.EditText;
-import android.widget.ListView;
-import android.widget.TextView;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
-import com.baidu.cyberplayer.utils.G;
-import com.chad.library.adapter.base.BaseViewHolder;
 import com.common.LogUtil;
-import com.common.data.CalendarUtil;
-import com.common.data.DateFormatUtil;
 import com.common.data.JSONUtil;
 import com.common.data.ListUtils;
-import com.common.data.StringUtil;
 import com.common.thread.ThreadPool;
 import com.core.app.Constants;
 import com.core.net.http.http.OAHttpHelper;
 import com.core.utils.CommonUtil;
-import com.core.utils.time.wheel.DateTimePicker;
-import com.core.widget.listener.EditChangeListener;
 import com.me.network.app.http.Method;
 import com.modular.apputils.activity.BaseNetActivity;
 import com.modular.apputils.listener.OnSmartHttpListener;
@@ -41,10 +24,7 @@ import com.uas.appworks.OA.platform.adapter.PurchaseDetailsAdapter;
 import com.uas.appworks.OA.platform.model.Purchase;
 import com.uas.appworks.R;
 
-
 import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Date;
 import java.util.List;
 
 

+ 4 - 1
app_modular/appworks/src/main/java/com/uas/appworks/activity/B2BBusinessLoginActivity.java

@@ -62,9 +62,12 @@ public class B2BBusinessLoginActivity extends BaseMVPActivity {
         mRecyclerView.addOnItemTouchListener(new OnRecyclerItemClickListener(mRecyclerView) {
             @Override
             public void onItemClick(RecyclerView.ViewHolder vh) {
+                B2BCompanyBean b2BCompanyBean = mB2BCompanyBeans.get(vh.getLayoutPosition());
+                CommonUtil.setSharedPreferences(mContext, Constants.CACHE.B2B_BUSINESS_ENUU, b2BCompanyBean.getEnuu());
+
                 Intent intent = new Intent();
                 intent.setClass(mContext, B2BBusinessMainActivity.class);
-                intent.putExtra(Constants.FLAG.B2B_COMPANY_BEAN, mB2BCompanyBeans.get(vh.getLayoutPosition()));
+                intent.putExtra(Constants.FLAG.B2B_COMPANY_BEAN, b2BCompanyBean);
                 startActivity(intent);
             }
         });

+ 332 - 13
app_modular/appworks/src/main/java/com/uas/appworks/activity/B2BBusinessMainActivity.java

@@ -5,31 +5,43 @@ import android.support.v7.app.ActionBar;
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
 import android.text.SpannableStringBuilder;
+import android.text.TextUtils;
 import android.view.View;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
-import android.widget.PopupWindow;
 import android.widget.TextView;
 
 import com.afollestad.materialdialogs.MaterialDialog;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.chad.library.adapter.base.BaseQuickAdapter;
+import com.common.LogUtil;
+import com.common.data.DateFormatUtil;
 import com.common.data.JSONUtil;
 import com.core.app.Constants;
 import com.core.base.activity.BaseMVPActivity;
 import com.core.utils.CommonUtil;
 import com.core.utils.SpanUtils;
 import com.core.widget.DrawableCenterTextView;
+import com.me.network.app.base.HttpCallback;
+import com.me.network.app.base.HttpParams;
+import com.me.network.app.http.HttpRequest;
+import com.me.network.app.http.Method;
 import com.scwang.smartrefresh.layout.api.RefreshLayout;
+import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
+import com.uas.appworks.OA.platform.activity.PurchaseDetailsActivity;
 import com.uas.appworks.R;
 import com.uas.appworks.adapter.B2BAccountAdapter;
+import com.uas.appworks.adapter.B2bBusinessListAdapter;
+import com.uas.appworks.model.bean.B2BBusinessListBean;
 import com.uas.appworks.model.bean.B2BCompanyBean;
 import com.uas.appworks.presenter.WorkPlatPresenter;
-import com.uas.appworks.view.WorkPlatView;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author RaoMeng
@@ -37,7 +49,8 @@ import java.util.List;
  * @date 2018/1/14 14:19
  */
 
-public class B2BBusinessMainActivity extends BaseMVPActivity<WorkPlatPresenter> implements WorkPlatView, View.OnClickListener {
+public class B2BBusinessMainActivity extends BaseMVPActivity<WorkPlatPresenter> implements View.OnClickListener, HttpCallback {
+    private static final int OBTAIN_PURCHASE_ORDER_LIST = 0x01, OBTAIN_CUSTOMER_INQUIRY_LIST = 0x02, OBTAIN_PUBLIC_INQUIRY_LIST = 0x03;
 
     private RefreshLayout mRefreshLayout;
     private ImageView mBackImageView;
@@ -59,6 +72,9 @@ public class B2BBusinessMainActivity extends BaseMVPActivity<WorkPlatPresenter>
     private SpanUtils mSpanUtils;
     private List<B2BCompanyBean> mB2BCompanyBeans;
     private B2BAccountAdapter mB2BAccountAdapter;
+    private List<B2BBusinessListBean> mPurchaseOrderBeans, mCustomerInquiryBeans, mPublicInquiryBeans;
+    private B2bBusinessListAdapter mPurchaseOrderAdapter, mCustomerInquiryAdapter, mPublicInquiryAdapter;
+    private boolean isPurchaseSuccess, isCustomerSuccess, isPublicSuccess;
 
     @Override
     protected int getLayout() {
@@ -99,11 +115,29 @@ public class B2BBusinessMainActivity extends BaseMVPActivity<WorkPlatPresenter>
         mAccountDialog = new MaterialDialog.Builder(mContext)
                 .customView(accountView, true)
                 .build();
+
+        mPurchaseOrderRv.setLayoutManager(new LinearLayoutManager(mContext));
+        mPurchaseOrderRv.setNestedScrollingEnabled(false);
+        mPurchaseOrderBeans = new ArrayList<>();
+        mPurchaseOrderAdapter = new B2bBusinessListAdapter(mContext, mPurchaseOrderBeans);
+        mPurchaseOrderRv.setAdapter(mPurchaseOrderAdapter);
+
+        mCustomerInquiryRv.setLayoutManager(new LinearLayoutManager(mContext));
+        mCustomerInquiryRv.setNestedScrollingEnabled(false);
+        mCustomerInquiryBeans = new ArrayList<>();
+        mCustomerInquiryAdapter = new B2bBusinessListAdapter(mContext, mCustomerInquiryBeans);
+        mCustomerInquiryRv.setAdapter(mCustomerInquiryAdapter);
+
+        mPublicInquiryRv.setLayoutManager(new LinearLayoutManager(mContext));
+        mPublicInquiryRv.setNestedScrollingEnabled(false);
+        mPublicInquiryBeans = new ArrayList<>();
+        mPublicInquiryAdapter = new B2bBusinessListAdapter(mContext, mPublicInquiryBeans);
+        mPublicInquiryRv.setAdapter(mPublicInquiryAdapter);
     }
 
     @Override
     protected WorkPlatPresenter initPresenter() {
-        return new WorkPlatPresenter();
+        return null;
     }
 
     @Override
@@ -118,6 +152,59 @@ public class B2BBusinessMainActivity extends BaseMVPActivity<WorkPlatPresenter>
         mPublicInquiryAllTv.setOnClickListener(this);
         mAccountSureTextView.setOnClickListener(this);
         mAccountCancelTextView.setOnClickListener(this);
+
+        mRefreshLayout.setOnRefreshListener(new OnRefreshListener() {
+            @Override
+            public void onRefresh(RefreshLayout refreshLayout) {
+                if (CommonUtil.isNetWorkConnected(mContext)) {
+                    isPurchaseSuccess = false;
+                    isCustomerSuccess = false;
+                    isPublicSuccess = false;
+                    getListData(OBTAIN_PURCHASE_ORDER_LIST);
+                    getListData(OBTAIN_CUSTOMER_INQUIRY_LIST);
+                    getListData(OBTAIN_PUBLIC_INQUIRY_LIST);
+                } else {
+                    toast(R.string.networks_out);
+                    mRefreshLayout.finishRefresh(500, false);
+                }
+
+            }
+        });
+
+        mPurchaseOrderAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
+            @Override
+            public void onItemClick(BaseQuickAdapter baseQuickAdapter, View view, int i) {
+                Intent intent = new Intent();
+                intent.setClass(mContext, PurchaseDetailsActivity.class);
+                intent.putExtra(Constants.FLAG.KEY_PURCHASE_ID, mPurchaseOrderBeans.get(i).getId());
+                intent.putExtra(Constants.FLAG.KEY_PURCHASE_STATUS, mPurchaseOrderBeans.get(i).getBillState());
+                startActivity(intent);
+            }
+        });
+
+        mCustomerInquiryAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
+            @Override
+            public void onItemClick(BaseQuickAdapter baseQuickAdapter, View view, int i) {
+                Intent intent = new Intent();
+                intent.setClass(mContext, CustomerInquiryDetailActivity.class);
+                intent.putExtra(Constants.FLAG.EXTRA_B2B_LIST_ID, mCustomerInquiryBeans.get(i).getId());
+                intent.putExtra(Constants.FLAG.EXTRA_B2B_LIST_STATE, mCustomerInquiryBeans.get(i).getBillState());
+                intent.putExtra(Constants.FLAG.EXTRA_B2B_LIST_JSON, mCustomerInquiryBeans.get(i).getJsonData());
+                startActivity(intent);
+            }
+        });
+
+        mPublicInquiryAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
+            @Override
+            public void onItemClick(BaseQuickAdapter baseQuickAdapter, View view, int i) {
+                Intent intent = new Intent();
+                intent.setClass(mContext, PublicInquiryDetailActivity.class);
+                intent.putExtra(Constants.FLAG.EXTRA_B2B_LIST_ID, mPublicInquiryBeans.get(i).getId());
+                intent.putExtra(Constants.FLAG.EXTRA_B2B_LIST_STATE, mPublicInquiryBeans.get(i).getBillState());
+                intent.putExtra(Constants.FLAG.EXTRA_B2B_LIST_JSON, mPublicInquiryBeans.get(i).getJsonData());
+                startActivity(intent);
+            }
+        });
     }
 
     @Override
@@ -129,6 +216,50 @@ public class B2BBusinessMainActivity extends BaseMVPActivity<WorkPlatPresenter>
             SpannableStringBuilder companyName = mSpanUtils.append(mB2BCompanyBean.getName()).setUnderline().create();
             mCompanyNameTextView.setText(companyName);
         }
+
+        if (CommonUtil.isNetWorkConnected(mContext)) {
+            showLoading(null);
+            getListData(OBTAIN_PURCHASE_ORDER_LIST);
+            getListData(OBTAIN_CUSTOMER_INQUIRY_LIST);
+            getListData(OBTAIN_PUBLIC_INQUIRY_LIST);
+        } else {
+            toast(R.string.networks_out);
+        }
+
+    }
+
+    private void getListData(int flag) {
+        String url = "";
+        switch (flag) {
+            case OBTAIN_PURCHASE_ORDER_LIST:
+                url = "mobile/sale/orders/info/search";
+                break;
+            case OBTAIN_CUSTOMER_INQUIRY_LIST:
+                url = "mobile/sale/inquiry/info/search";
+                break;
+            case OBTAIN_PUBLIC_INQUIRY_LIST:
+                url = "mobile/purc/inquiry/publicInquiryItem";
+                break;
+        }
+        showLoading(null);
+
+        Map<String, Object> params = new HashMap<>();
+//        params.put("en_uu", mB2BCompanyBean.getEnuu());
+        params.put("en_uu", 10041559);
+//        params.put("user_tel", MyApplication.getInstance().mLoginUser.getTelephone());
+        params.put("user_tel", "15671616315");
+        params.put("_state", "");
+        params.put("page", 1);
+        params.put("size", 3);
+
+        HttpRequest.getInstance().sendRequest("http://192.168.253.102:8090/platform-b2b/",
+                new HttpParams.Builder()
+                        .url(url)
+                        .flag(flag)
+                        .method(Method.GET)
+                        .setHeaders(new HashMap<String, Object>())
+                        .setParams(params)
+                        .build(), this);
     }
 
     @Override
@@ -147,12 +278,184 @@ public class B2BBusinessMainActivity extends BaseMVPActivity<WorkPlatPresenter>
     }
 
     @Override
-    public void requestSuccess(int what, Object object) {
+    public void onSuccess(int flag, Object o) {
+        try {
+            String result = o.toString();
+            LogUtil.prinlnLongMsg("b2blistlogsuccess", result);
+            JSONObject resultObject = JSON.parseObject(result);
+            JSONArray contentArray = resultObject.getJSONArray("content");
+            switch (flag) {
+                case OBTAIN_PURCHASE_ORDER_LIST:
+                    isPurchaseSuccess = true;
+                    if (isCustomerSuccess && isPublicSuccess) {
+                        hideLoading();
+                    }
+                    if (contentArray == null || contentArray.size() == 0) {
+                        mPurchaseOrderBeans.clear();
+                        mPurchaseOrderAdapter.notifyDataSetChanged();
+                        return;
+                    }
+                    mPurchaseOrderBeans.clear();
+                    analysisPurchaseOrder(contentArray);
+                    break;
+                case OBTAIN_CUSTOMER_INQUIRY_LIST:
+                    isCustomerSuccess = true;
+                    if (isPurchaseSuccess && isPublicSuccess) {
+                        hideLoading();
+                    }
+                    if (contentArray == null || contentArray.size() == 0) {
+                        mCustomerInquiryBeans.clear();
+                        mCustomerInquiryAdapter.notifyDataSetChanged();
+                        return;
+                    }
+                    mCustomerInquiryBeans.clear();
+                    analysisCustomerInquiry(contentArray);
+                    break;
+                case OBTAIN_PUBLIC_INQUIRY_LIST:
+                    isPublicSuccess = true;
+                    if (isCustomerSuccess && isPurchaseSuccess) {
+                        hideLoading();
+                    }
+                    if (contentArray == null || contentArray.size() == 0) {
+                        mPublicInquiryBeans.clear();
+                        mPublicInquiryAdapter.notifyDataSetChanged();
+                        return;
+                    }
+                    mPublicInquiryBeans.clear();
+                    break;
+                default:
+                    break;
+            }
+        } catch (Exception e) {
+
+        }
+
+    }
+
+    private void analysisCustomerInquiry(JSONArray contentArray) {
+        for (int i = 0; i < contentArray.size(); i++) {
+            JSONObject contentObject = contentArray.getJSONObject(i);
+            if (contentObject != null) {
+                B2BBusinessListBean b2BBusinessListBean = new B2BBusinessListBean();
+                b2BBusinessListBean.setJsonData(contentObject.toString());
+                b2BBusinessListBean.setItemType(B2BBusinessListBean.CUSTOMER_INQUIRY_LIST);
+                b2BBusinessListBean.setId(JSONUtil.getText(contentObject, "id"));
 
+                JSONObject inquiryObject = contentObject.getJSONObject("inquiry");
+                if (inquiryObject != null) {
+                    JSONObject enterpriseObject = inquiryObject.getJSONObject("enterprise");
+                    if (enterpriseObject != null) {
+                        b2BBusinessListBean.setCompanyName(JSONUtil.getText(enterpriseObject, "enName"));
+                    }
+                    b2BBusinessListBean.setMaterialNum(JSONUtil.getText(inquiryObject, "code"));
+                    b2BBusinessListBean.setBillNum(JSONUtil.getText(inquiryObject, "id"));
+                    b2BBusinessListBean.setExpiryDate(DateFormatUtil.long2Str((JSONUtil.getLong(inquiryObject, "endDate") / 1000), "yyyy-MM-dd"));
+                }
+                b2BBusinessListBean.setBillDate(DateFormatUtil.long2Str((JSONUtil.getLong(contentObject, "date") / 1000), "yyyy-MM-dd"));
+
+                String invalid = JSONUtil.getText(contentObject, "invalid");
+                if ("1".equals(invalid)) {
+                    b2BBusinessListBean.setBillState(Constants.FLAG.STATE_CUSTOMER_INQUIRY_INVALID);
+                } else {
+                    String overdue = JSONUtil.getText(contentObject, "overdue");
+                    if ("1".equals(overdue)) {
+                        b2BBusinessListBean.setBillState(Constants.FLAG.STATE_CUSTOMER_INQUIRY_END);
+                    } else {
+                        String agreed = JSONUtil.getText(contentObject, "agreed");
+                        if ("1".equals(agreed)) {
+                            b2BBusinessListBean.setBillState(Constants.FLAG.STATE_CUSTOMER_INQUIRY_AGREED);
+                        } else if ("0".equals(agreed)) {
+                            b2BBusinessListBean.setBillState(Constants.FLAG.STATE_CUSTOMER_INQUIRY_REFUSED);
+                        } else {
+                            String status = JSONUtil.getText(contentObject, "status");
+                            if ("200".equals(status)) {
+                                b2BBusinessListBean.setBillState(Constants.FLAG.STATE_CUSTOMER_INQUIRY_TODO);
+                            } else if ("201".equals(status)) {
+                                b2BBusinessListBean.setBillState(Constants.FLAG.STATE_CUSTOMER_INQUIRY_DONE);
+                            }
+                        }
+                    }
+                }
+
+                mCustomerInquiryBeans.add(b2BBusinessListBean);
+            }
+        }
+        mCustomerInquiryAdapter.notifyDataSetChanged();
+    }
+
+    private void analysisPurchaseOrder(JSONArray contentArray) {
+        for (int i = 0; i < contentArray.size(); i++) {
+            JSONObject contentObject = contentArray.getJSONObject(i);
+            if (contentObject != null) {
+                B2BBusinessListBean b2BBusinessListBean = new B2BBusinessListBean();
+                b2BBusinessListBean.setJsonData(contentObject.toString());
+                b2BBusinessListBean.setItemType(B2BBusinessListBean.PURCHASE_ORDER_LIST);
+                b2BBusinessListBean.setId(JSONUtil.getText(contentObject, "id"));
+                b2BBusinessListBean.setCompanyName(JSONUtil.getText(contentObject, "receiveName"));
+                b2BBusinessListBean.setBillDate(DateFormatUtil.long2Str((JSONUtil.getLong(contentObject, "date") / 1000), "yyyy-MM-dd"));
+                b2BBusinessListBean.setBillNum(JSONUtil.getText(contentObject, "code"));
+                b2BBusinessListBean.setMaterialNum("ddd");
+                JSONArray orderItems = contentObject.getJSONArray("orderItems");
+                if (orderItems == null || orderItems.size() == 0) {
+                    b2BBusinessListBean.setMoney("0");
+                } else {
+                    long money = 0;
+                    for (int j = 0; j < orderItems.size(); j++) {
+                        JSONObject orderItem = orderItems.getJSONObject(j);
+                        long amount = JSONUtil.getLong(orderItem, "amount");
+                        money += amount;
+                    }
+                    b2BBusinessListBean.setMoney(money + "");
+                }
+                String end = JSONUtil.getText(contentObject, "end");
+                if (!TextUtils.isEmpty(end) && "1".equals(end)) {
+                    b2BBusinessListBean.setBillState(Constants.FLAG.STATE_PURCHASE_ORDER_END);
+                } else {
+                    String status = JSONUtil.getText(contentObject, "status");
+                    if ("200".equals(status)) {
+                        b2BBusinessListBean.setBillState(Constants.FLAG.STATE_PURCHASE_ORDER_TODO);
+                    } else if ("201".equals(status)) {
+                        b2BBusinessListBean.setBillState(Constants.FLAG.STATE_PURCHASE_ORDER_DONE);
+                    }
+                }
+
+                mPurchaseOrderBeans.add(b2BBusinessListBean);
+            }
+        }
+        mPurchaseOrderAdapter.notifyDataSetChanged();
     }
 
     @Override
-    public void requestError(int what, String errorMsg) {
+    public void onFail(int flag, String failStr) {
+        try {
+            if (!CommonUtil.isRepeatClick(2000)) {
+                toast(failStr);
+            }
+            switch (flag) {
+                case OBTAIN_PURCHASE_ORDER_LIST:
+                    isPurchaseSuccess = true;
+                    if (isCustomerSuccess && isPublicSuccess) {
+                        hideLoading();
+                    }
+                    break;
+                case OBTAIN_CUSTOMER_INQUIRY_LIST:
+                    isCustomerSuccess = true;
+                    if (isPurchaseSuccess && isPublicSuccess) {
+                        hideLoading();
+                    }
+                    break;
+                case OBTAIN_PUBLIC_INQUIRY_LIST:
+                    isPublicSuccess = true;
+                    if (isCustomerSuccess && isPurchaseSuccess) {
+                        hideLoading();
+                    }
+                    break;
+                default:
+                    break;
+            }
+        } catch (Exception e) {
+
+        }
 
     }
 
@@ -173,15 +476,30 @@ public class B2BBusinessMainActivity extends BaseMVPActivity<WorkPlatPresenter>
                 || i == R.id.b2b_business_main_public_inquiry_all_tv) {
             startActivity(PublicInquiryListActivity.class);
         } else if (i == R.id.b2b_change_account_sure_tv) {
-            for (B2BCompanyBean b2BCompanyBean : mB2BCompanyBeans) {
-                if (b2BCompanyBean.isSelected()) {
-                    mB2BCompanyBean = b2BCompanyBean;
-                    break;
+            if (CommonUtil.isNetWorkConnected(mContext)) {
+                for (B2BCompanyBean b2BCompanyBean : mB2BCompanyBeans) {
+                    if (b2BCompanyBean.isSelected()) {
+                        mB2BCompanyBean = b2BCompanyBean;
+                        break;
+                    }
                 }
+                CommonUtil.setSharedPreferences(mContext, Constants.CACHE.B2B_BUSINESS_ENUU, mB2BCompanyBean.getEnuu());
+                mSpanUtils = new SpanUtils();
+                SpannableStringBuilder companyName = mSpanUtils.append(mB2BCompanyBean.getName()).setUnderline().create();
+                mCompanyNameTextView.setText(companyName);
+                mAccountDialog.dismiss();
+
+                isPurchaseSuccess = false;
+                isCustomerSuccess = false;
+                isPublicSuccess = false;
+                showLoading(null);
+                getListData(OBTAIN_PURCHASE_ORDER_LIST);
+                getListData(OBTAIN_CUSTOMER_INQUIRY_LIST);
+                getListData(OBTAIN_PUBLIC_INQUIRY_LIST);
+            } else {
+                toast(R.string.networks_out);
             }
-            mSpanUtils = new SpanUtils();
-            SpannableStringBuilder companyName = mSpanUtils.append(mB2BCompanyBean.getName()).setUnderline().create();
-            mCompanyNameTextView.setText(companyName);
+
         } else if (i == R.id.b2b_change_account_cancel_tv) {
             mAccountDialog.dismiss();
         }
@@ -237,4 +555,5 @@ public class B2BBusinessMainActivity extends BaseMVPActivity<WorkPlatPresenter>
             }
         }
     }
+
 }

+ 226 - 4
app_modular/appworks/src/main/java/com/uas/appworks/activity/CustomerInquiryDetailActivity.java

@@ -1,25 +1,136 @@
 package com.uas.appworks.activity;
 
+import android.content.Intent;
+import android.os.SystemClock;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.View;
+import android.widget.Button;
+import android.widget.ImageView;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.common.LogUtil;
+import com.common.data.JSONUtil;
+import com.core.app.Constants;
 import com.core.base.activity.BaseMVPActivity;
+import com.core.utils.CommonUtil;
+import com.me.network.app.base.HttpCallback;
+import com.uas.appworks.R;
+import com.uas.appworks.adapter.B2BDetailListAdapter;
+import com.uas.appworks.adapter.B2BQuotePriceAdapter;
+import com.uas.appworks.model.bean.B2BDetailListBean;
+import com.uas.appworks.model.bean.B2BQuotePriceBean;
 import com.uas.appworks.presenter.WorkPlatPresenter;
 
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * @author RaoMeng
- * @describe
+ * @describe 客户询价单详情页
  * @date 2018/1/16 16:46
  */
 
-public class CustomerInquiryDetailActivity extends BaseMVPActivity<WorkPlatPresenter> {
+public class CustomerInquiryDetailActivity extends BaseMVPActivity<WorkPlatPresenter> implements View.OnClickListener, HttpCallback {
+
+    private RecyclerView mDataRecyclerView, mQuoteRecyclerView;
+    private ImageView mAddImageView;
+    private Button mQuoteButton;
+    private B2BDetailListAdapter mB2BDetailListAdapter;
+    private List<B2BDetailListBean> mB2BDetailListBeans;
+    private B2BQuotePriceAdapter mB2BQuotePriceAdapter;
+    private List<B2BQuotePriceBean> mB2BQuotePriceBeans;
 
+    private String mId, mState, mJson;
+    private String mEnuu;
 
     @Override
     protected int getLayout() {
-        return 0;
+        return R.layout.activity_customer_inquiry_detail;
     }
 
     @Override
     protected void initView() {
+        mEnuu = CommonUtil.getSharedPreferences(mContext, Constants.CACHE.B2B_BUSINESS_ENUU);
+
+        mDataRecyclerView = $(R.id.customer_inquiry_detail_data_rv);
+        mQuoteRecyclerView = $(R.id.customer_inquiry_detail_quote_rv);
+        mAddImageView = $(R.id.customer_inquiry_detail_add_iv);
+        mQuoteButton = $(R.id.customer_inquiry_detail_quote_btn);
+
+        mDataRecyclerView.setLayoutManager(new LinearLayoutManager(mContext));
+        mDataRecyclerView.setNestedScrollingEnabled(false);
+        mQuoteRecyclerView.setLayoutManager(new LinearLayoutManager(mContext));
+        mQuoteRecyclerView.setNestedScrollingEnabled(false);
+
+        mB2BDetailListBeans = new ArrayList<>();
+        mB2BDetailListAdapter = new B2BDetailListAdapter(mContext, mB2BDetailListBeans);
+        mDataRecyclerView.setAdapter(mB2BDetailListAdapter);
+
+        mB2BQuotePriceBeans = new ArrayList<>();
+        mB2BQuotePriceAdapter = new B2BQuotePriceAdapter(mContext, mB2BQuotePriceBeans);
+        mQuoteRecyclerView.setAdapter(mB2BQuotePriceAdapter);
+
+        Intent intent = getIntent();
+        if (intent != null) {
+            mId = intent.getStringExtra(Constants.FLAG.EXTRA_B2B_LIST_ID);
+            mState = intent.getStringExtra(Constants.FLAG.EXTRA_B2B_LIST_STATE);
+            mJson = intent.getStringExtra(Constants.FLAG.EXTRA_B2B_LIST_JSON);
+
+            if (mState != null) {
+                switch (mState) {
+                    case Constants.FLAG.STATE_CUSTOMER_INQUIRY_TODO:
+                        getSupportActionBar().setTitle(R.string.str_wait_quoted);
+                        initEditable(true, View.VISIBLE);
+                        break;
+                    case Constants.FLAG.STATE_CUSTOMER_INQUIRY_DONE:
+                        getSupportActionBar().setTitle(R.string.str_quoted_price);
+                        if (mJson != null && JSONUtil.validate(mJson)) {
+                            JSONObject detailObject = JSON.parseObject(mJson);
+                            JSONObject inquiryObject = detailObject.getJSONObject("inquiry");
+                            String checked = JSONUtil.getText(inquiryObject, "checked");
+                            long endDate = JSONUtil.getLong(inquiryObject, "endDate");
+                            long currentDate = SystemClock.currentThreadTimeMillis() * 1000;
+                            if ("1".equals(checked) || currentDate > endDate) {
+                                initEditable(false, View.VISIBLE);
+                            } else {
+                                initEditable(true, View.VISIBLE);
+                            }
+                        } else {
+                            initEditable(false, View.GONE);
+                        }
+                        break;
+                    case Constants.FLAG.STATE_CUSTOMER_INQUIRY_AGREED:
+                        getSupportActionBar().setTitle(R.string.str_quotation_adopted);
+                        initEditable(false, View.GONE);
+                        break;
+                    case Constants.FLAG.STATE_CUSTOMER_INQUIRY_END:
+                        getSupportActionBar().setTitle(R.string.str_expired);
+                        initEditable(false, View.GONE);
+                        break;
+                    case Constants.FLAG.STATE_CUSTOMER_INQUIRY_REFUSED:
+                        getSupportActionBar().setTitle(R.string.str_quotation_unadopted);
+                        initEditable(false, View.GONE);
+                        break;
+                    case Constants.FLAG.STATE_CUSTOMER_INQUIRY_INVALID:
+                        getSupportActionBar().setTitle(R.string.str_invalid);
+                        initEditable(false, View.GONE);
+                        break;
+                }
+            }
+        }
+    }
+
+    private void initEditable(boolean editable, int visible) {
+        mB2BDetailListAdapter.setEditable(editable);
+        mB2BQuotePriceAdapter.setEditable(editable);
+        mAddImageView.setEnabled(editable);
 
+        mQuoteButton.setVisibility(visible);
     }
 
     @Override
@@ -29,21 +140,132 @@ public class CustomerInquiryDetailActivity extends BaseMVPActivity<WorkPlatPrese
 
     @Override
     protected void initEvent() {
+        mAddImageView.setOnClickListener(this);
 
+        mQuoteButton.setOnClickListener(this);
     }
 
     @Override
     protected void initData() {
+        if (mJson != null && JSONUtil.validate(mJson)) {
+            JSONObject detailObject = JSON.parseObject(mJson);
+            JSONObject inquiryObject = detailObject.getJSONObject("inquiry");
+            JSONObject productObject = detailObject.getJSONObject("product");
+            JSONObject recorderUser = inquiryObject.getJSONObject("recorderUser");
+
+            String userTel = JSONUtil.getText(recorderUser, "userTel");//客户联系电话
+            String recorder = JSONUtil.getText(inquiryObject, "recorder");//客户
+            String ship = JSONUtil.getText(inquiryObject, "ship");//客户地址
+            String billNum = JSONUtil.getText(inquiryObject, "code");//单据
+
+            String title = JSONUtil.getText(productObject, "title");
+            String spec = JSONUtil.getText(productObject, "spec");
+            String code = JSONUtil.getText(productObject, "code");
+            String material = title + (TextUtils.isEmpty(spec) ? "" : ("," + spec)
+                    + (TextUtils.isEmpty(code) ? "" : ("," + code)));//物料
+            String currency = JSONUtil.getText(detailObject, "currency");//币别
+            String taxrate = JSONUtil.getText(detailObject, "taxrate");//税率
+            String environment = JSONUtil.getText(inquiryObject, "environment");//环保要求
+            String priceType = JSONUtil.getText(inquiryObject, "priceType");//价格类型
+
+            String leadtime = JSONUtil.getText(detailObject, "leadtime");//交货周期
+            String minOrderQty = JSONUtil.getText(detailObject, "minOrderQty");//最小起订
+            String minPackQty = JSONUtil.getText(detailObject, "minPackQty");//最小包装
+
+            mB2BDetailListBeans.add(createB2BDetailListBean(B2BDetailListBean.TYPE_DETAIL_TEXT, "客户", recorder, "", "客户", ""));
+            mB2BDetailListBeans.add(createB2BDetailListBean(B2BDetailListBean.TYPE_DETAIL_TEXT, "客户地址", ship, "", "客户地址", ""));
+            mB2BDetailListBeans.add(createB2BDetailListBean(B2BDetailListBean.TYPE_DETAIL_TEXT, "联系电话", userTel, "", "联系电话", ""));
+            mB2BDetailListBeans.add(createB2BDetailListBean(B2BDetailListBean.TYPE_DETAIL_TEXT, "单据", billNum, "", "单据", ""));
+            mB2BDetailListBeans.add(createB2BDetailListBean(B2BDetailListBean.TYPE_DETAIL_TEXT, "物料", material, "", "物料", ""));
+            mB2BDetailListBeans.add(createB2BDetailListBean(B2BDetailListBean.TYPE_DETAIL_TEXT, "币别", currency, "", "币别", ""));
+            mB2BDetailListBeans.add(createB2BDetailListBean(B2BDetailListBean.TYPE_DETAIL_TEXT, "税率", taxrate, "", "税率", ""));
+            mB2BDetailListBeans.add(createB2BDetailListBean(B2BDetailListBean.TYPE_DETAIL_TEXT, "环保要求", environment, "", "环保要求", ""));
+            mB2BDetailListBeans.add(createB2BDetailListBean(B2BDetailListBean.TYPE_DETAIL_TEXT, "价格类型", priceType, "", "价格类型", ""));
+
+            mB2BDetailListBeans.add(createB2BDetailListBean(B2BDetailListBean.TYPE_DETAIL_EDIT, "交货周期", leadtime, "天", "交货周期", ""));
+            mB2BDetailListBeans.add(createB2BDetailListBean(B2BDetailListBean.TYPE_DETAIL_EDIT, "最小起订", minOrderQty, "PCS", "最小起订", ""));
+            mB2BDetailListBeans.add(createB2BDetailListBean(B2BDetailListBean.TYPE_DETAIL_EDIT, "最小包装", minPackQty, "PCS", "最小包装", ""));
+
+            mB2BDetailListAdapter.notifyDataSetChanged();
+
+            JSONArray replies = detailObject.getJSONArray("replies");
+            if (replies != null && replies.size() > 0) {
+                for (int i = 0; i < replies.size(); i++) {
+                    JSONObject replyObject = replies.getJSONObject(i);
+                    long id = JSONUtil.getLong(replyObject, "id");
+                    String amount = JSONUtil.getText(replyObject, "lapQty");
+                    String price = JSONUtil.getText(replyObject, "price");
 
+                    mB2BQuotePriceBeans.add(createB2BQuotePriceBean(id, amount, price));
+                }
+                mB2BQuotePriceAdapter.notifyDataSetChanged();
+            }
+        }
+
+    }
+
+    private B2BDetailListBean createB2BDetailListBean(int itemType,
+                                                      String caption,
+                                                      String value,
+                                                      String unit,
+                                                      String flag,
+                                                      String type) {
+        B2BDetailListBean b2BDetailListBean = new B2BDetailListBean();
+
+        b2BDetailListBean.setItemType(itemType);
+        b2BDetailListBean.setCaption(caption);
+        b2BDetailListBean.setFlag(flag);
+        b2BDetailListBean.setValue(value);
+        b2BDetailListBean.setType(type);
+        b2BDetailListBean.setUnit(unit);
+
+        return b2BDetailListBean;
+    }
+
+    private B2BQuotePriceBean createB2BQuotePriceBean(long id, String amount, String price) {
+        B2BQuotePriceBean b2BQuotePriceBean = new B2BQuotePriceBean();
+
+        b2BQuotePriceBean.setId(id);
+        b2BQuotePriceBean.setAmount(amount);
+        b2BQuotePriceBean.setPrice(price);
+
+        return b2BQuotePriceBean;
     }
 
     @Override
     public void showLoading(String loadStr) {
-
+        progressDialog.show();
     }
 
     @Override
     public void hideLoading() {
+        progressDialog.dismiss();
+    }
+
+    @Override
+    public void onClick(View view) {
+        int i = view.getId();
+        if (i == R.id.customer_inquiry_detail_add_iv) {
+            mB2BQuotePriceBeans.add(createB2BQuotePriceBean(0, "", ""));
+            mB2BQuotePriceAdapter.notifyDataSetChanged();
+        } else if (i == R.id.customer_inquiry_detail_quote_btn) {
+            List<B2BQuotePriceBean> b2BQuotePriceBeans = mB2BQuotePriceAdapter.getB2BQuotePriceBeans();
+            for (int j = 0; j < b2BQuotePriceBeans.size(); j++) {
+                String s = b2BQuotePriceBeans.get(j).toString();
+                Log.d("b2BQuotePriceBean", s);
+            }
+        }
+    }
 
+    @Override
+    public void onSuccess(int flag, Object o) {
+        hideLoading();
+        LogUtil.prinlnLongMsg("customerdetailsuccess", o.toString());
+    }
+
+    @Override
+    public void onFail(int flag, String failStr) {
+        hideLoading();
+        LogUtil.prinlnLongMsg("customerdetailfail", failStr);
     }
 }

+ 53 - 15
app_modular/appworks/src/main/java/com/uas/appworks/activity/CustomerInquiryListActivity.java

@@ -4,15 +4,14 @@ import android.support.v4.app.Fragment;
 import android.support.v4.view.ViewPager;
 import android.support.v7.app.ActionBar;
 
+import com.core.app.Constants;
 import com.core.base.activity.BaseMVPActivity;
+import com.core.utils.CommonUtil;
 import com.core.widget.SearchActionView;
 import com.uas.appworks.R;
 import com.uas.appworks.adapter.TabViewpagerAdapter;
-import com.uas.appworks.fragment.B2BBusinessListFragment1;
-import com.uas.appworks.fragment.B2BBusinessListFragment2;
-import com.uas.appworks.fragment.B2BBusinessListFragment3;
-import com.uas.appworks.fragment.B2BBusinessListFragment4;
-import com.uas.appworks.fragment.B2BBusinessListFragment5;
+import com.uas.appworks.fragment.B2BBusinessListFragment;
+import com.uas.appworks.model.bean.B2BBusinessListBean;
 import com.uas.appworks.presenter.WorkPlatPresenter;
 import com.uas.appworks.view.WorkPlatView;
 import com.viewpagerindicator.TabPageIndicator;
@@ -37,11 +36,7 @@ public class CustomerInquiryListActivity extends BaseMVPActivity<WorkPlatPresent
     private List<String> mTitleStrings;
     private SearchActionView mSearchActionView;
 
-    private B2BBusinessListFragment1 mAllFragment;
-    private B2BBusinessListFragment2 mWaitQuotedFragment;
-    private B2BBusinessListFragment3 mQuotedPriceFragment;
-    private B2BBusinessListFragment4 mQuotationAdoptedFragment;
-    private B2BBusinessListFragment5 mExpiredFragment;
+    private B2BBusinessListFragment mAllFragment, mWaitQuotedFragment, mQuotedPriceFragment, mQuotationAdoptedFragment, mExpiredFragment;
 
     @Override
     protected int getLayout() {
@@ -54,16 +49,27 @@ public class CustomerInquiryListActivity extends BaseMVPActivity<WorkPlatPresent
         ActionBar bar = this.getSupportActionBar();
         bar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
         bar.setCustomView(mSearchActionView);
+        mSearchActionView.setSearchHint(R.string.str_customer_inquiry_list);
 
         mTabPageIndicator = (TabPageIndicator) findViewById(R.id.tab_viewpager_tab);
         mUnderlinePageIndicator = (UnderlinePageIndicator) findViewById(R.id.tab_viewpager_undertab);
         mViewPager = (ViewPager) findViewById(R.id.tab_viewpager_vp);
 
-        mAllFragment = new B2BBusinessListFragment1();
-        mWaitQuotedFragment = new B2BBusinessListFragment2();
-        mQuotedPriceFragment = new B2BBusinessListFragment3();
-        mQuotationAdoptedFragment = new B2BBusinessListFragment4();
-        mExpiredFragment = new B2BBusinessListFragment5();
+        mAllFragment = new B2BBusinessListFragment();
+        mWaitQuotedFragment = new B2BBusinessListFragment();
+        mQuotedPriceFragment = new B2BBusinessListFragment();
+        mQuotationAdoptedFragment = new B2BBusinessListFragment();
+        mExpiredFragment = new B2BBusinessListFragment();
+
+        mAllFragment.setListType(B2BBusinessListBean.CUSTOMER_INQUIRY_LIST);
+        mWaitQuotedFragment.setListType(B2BBusinessListBean.CUSTOMER_INQUIRY_LIST);
+        mWaitQuotedFragment.setListState(Constants.FLAG.STATE_CUSTOMER_INQUIRY_TODO);
+        mQuotedPriceFragment.setListType(B2BBusinessListBean.CUSTOMER_INQUIRY_LIST);
+        mQuotedPriceFragment.setListState(Constants.FLAG.STATE_CUSTOMER_INQUIRY_DONE);
+        mQuotationAdoptedFragment.setListType(B2BBusinessListBean.CUSTOMER_INQUIRY_LIST);
+        mQuotationAdoptedFragment.setListState(Constants.FLAG.STATE_CUSTOMER_INQUIRY_AGREED);
+        mExpiredFragment.setListType(B2BBusinessListBean.CUSTOMER_INQUIRY_LIST);
+        mExpiredFragment.setListState(Constants.FLAG.STATE_CUSTOMER_INQUIRY_END);
 
         mFragments = new ArrayList<>();
         mFragments.add(mAllFragment);
@@ -96,6 +102,38 @@ public class CustomerInquiryListActivity extends BaseMVPActivity<WorkPlatPresent
     @Override
     protected void initEvent() {
 
+        mSearchActionView.setOnEnterActionListener(new SearchActionView.OnEnterActionListener() {
+            @Override
+            public void onEnterAction() {
+                if (CommonUtil.isNetWorkConnected(mContext)) {
+                    String text = mSearchActionView.getText();
+                    mAllFragment.getListData(1, text);
+                    mWaitQuotedFragment.getListData(1, text);
+                    mQuotedPriceFragment.getListData(1, text);
+                    mQuotationAdoptedFragment.getListData(1, text);
+                    mExpiredFragment.getListData(1, text);
+                } else {
+                    toast(R.string.networks_out);
+                }
+            }
+        });
+
+        mSearchActionView.setOnVoiceCompleteListener(new SearchActionView.OnVoiceCompleteListener() {
+            @Override
+            public void onVoiceComplete() {
+                if (CommonUtil.isNetWorkConnected(mContext)) {
+                    String text = mSearchActionView.getText();
+                    mAllFragment.getListData(1, text);
+                    mWaitQuotedFragment.getListData(1, text);
+                    mQuotedPriceFragment.getListData(1, text);
+                    mQuotationAdoptedFragment.getListData(1, text);
+                    mExpiredFragment.getListData(1, text);
+                } else {
+                    toast(R.string.networks_out);
+                }
+            }
+        });
+
     }
 
     @Override

+ 49 - 0
app_modular/appworks/src/main/java/com/uas/appworks/activity/PublicInquiryDetailActivity.java

@@ -1,5 +1,6 @@
 package com.uas.appworks.activity;
 
+import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
 
 import com.core.base.activity.BaseMVPActivity;
@@ -8,6 +9,7 @@ import com.uas.appworks.adapter.B2BDetailListAdapter;
 import com.uas.appworks.model.bean.B2BDetailListBean;
 import com.uas.appworks.presenter.WorkPlatPresenter;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -31,6 +33,19 @@ public class PublicInquiryDetailActivity extends BaseMVPActivity<WorkPlatPresent
     protected void initView() {
         mInquiryRecyclerView = $(R.id.public_inquiry_detail_inquiry_information_rv);
         mMaterialRecyclerView = $(R.id.public_inquiry_detail_material_information_rv);
+
+        mInquiryRecyclerView.setLayoutManager(new LinearLayoutManager(mContext));
+        mInquiryRecyclerView.setNestedScrollingEnabled(false);
+        mMaterialRecyclerView.setLayoutManager(new LinearLayoutManager(mContext));
+        mMaterialRecyclerView.setNestedScrollingEnabled(false);
+
+        mInquiryListBeans = new ArrayList<>();
+        mInquiryListAdapter = new B2BDetailListAdapter(mContext, mInquiryListBeans);
+        mInquiryRecyclerView.setAdapter(mInquiryListAdapter);
+
+        mMaterialListBeans = new ArrayList<>();
+        mMaterialListAdapter = new B2BDetailListAdapter(mContext, mMaterialListBeans);
+        mMaterialRecyclerView.setAdapter(mMaterialListAdapter);
     }
 
     @Override
@@ -45,7 +60,41 @@ public class PublicInquiryDetailActivity extends BaseMVPActivity<WorkPlatPresent
 
     @Override
     protected void initData() {
+        mInquiryListBeans.add(createB2BDetailListBean(B2BDetailListBean.TYPE_DETAIL_TEXT_WHITE, "询价编号", "", "", "询价编号", ""));
+        mInquiryListBeans.add(createB2BDetailListBean(B2BDetailListBean.TYPE_DETAIL_TEXT_WHITE, "询价企业", "", "", "询价企业", ""));
+        mInquiryListBeans.add(createB2BDetailListBean(B2BDetailListBean.TYPE_DETAIL_TEXT_WHITE, "联系电话", "", "", "联系电话", ""));
+        mInquiryListBeans.add(createB2BDetailListBean(B2BDetailListBean.TYPE_DETAIL_TEXT_WHITE, "联系人", "", "", "联系人", ""));
+        mInquiryListBeans.add(createB2BDetailListBean(B2BDetailListBean.TYPE_DETAIL_TEXT_WHITE, "报价截止如期", "", "", "报价截止如期", ""));
+        mInquiryListBeans.add(createB2BDetailListBean(B2BDetailListBean.TYPE_DETAIL_TEXT_WHITE, "附件", "", "", "附件", ""));
+
+        mInquiryListAdapter.notifyItemRangeInserted(0, mInquiryListBeans.size());
+
+        mMaterialListBeans.add(createB2BDetailListBean(B2BDetailListBean.TYPE_DETAIL_TEXT_WHITE, "原厂型号", "", "", "原厂型号", ""));
+        mMaterialListBeans.add(createB2BDetailListBean(B2BDetailListBean.TYPE_DETAIL_TEXT_WHITE, "品牌", "", "", "品牌", ""));
+        mMaterialListBeans.add(createB2BDetailListBean(B2BDetailListBean.TYPE_DETAIL_TEXT_WHITE, "物料规格", "", "", "物料规格", ""));
+        mMaterialListBeans.add(createB2BDetailListBean(B2BDetailListBean.TYPE_DETAIL_TEXT_WHITE, "物料名称", "", "", "物料名称", ""));
+        mMaterialListBeans.add(createB2BDetailListBean(B2BDetailListBean.TYPE_DETAIL_TEXT_WHITE, "单位", "", "", "单位", ""));
+        mMaterialListBeans.add(createB2BDetailListBean(B2BDetailListBean.TYPE_DETAIL_TEXT_WHITE, "数量", "", "", "数量", ""));
+
+        mMaterialListAdapter.notifyItemRangeInserted(0, mMaterialListBeans.size());
+    }
 
+    private B2BDetailListBean createB2BDetailListBean(int itemType,
+                                                      String caption,
+                                                      String value,
+                                                      String unit,
+                                                      String flag,
+                                                      String type) {
+        B2BDetailListBean b2BDetailListBean = new B2BDetailListBean();
+
+        b2BDetailListBean.setItemType(itemType);
+        b2BDetailListBean.setCaption(caption);
+        b2BDetailListBean.setFlag(flag);
+        b2BDetailListBean.setValue(value);
+        b2BDetailListBean.setType(type);
+        b2BDetailListBean.setUnit(unit);
+
+        return b2BDetailListBean;
     }
 
     @Override

+ 43 - 12
app_modular/appworks/src/main/java/com/uas/appworks/activity/PublicInquiryListActivity.java

@@ -5,13 +5,12 @@ import android.support.v4.view.ViewPager;
 import android.support.v7.app.ActionBar;
 
 import com.core.base.activity.BaseMVPActivity;
+import com.core.utils.CommonUtil;
 import com.core.widget.SearchActionView;
 import com.uas.appworks.R;
 import com.uas.appworks.adapter.TabViewpagerAdapter;
-import com.uas.appworks.fragment.B2BBusinessListFragment1;
-import com.uas.appworks.fragment.B2BBusinessListFragment2;
-import com.uas.appworks.fragment.B2BBusinessListFragment3;
-import com.uas.appworks.fragment.B2BBusinessListFragment4;
+import com.uas.appworks.fragment.B2BBusinessListFragment;
+import com.uas.appworks.model.bean.B2BBusinessListBean;
 import com.uas.appworks.presenter.WorkPlatPresenter;
 import com.uas.appworks.view.WorkPlatView;
 import com.viewpagerindicator.TabPageIndicator;
@@ -36,10 +35,7 @@ public class PublicInquiryListActivity extends BaseMVPActivity<WorkPlatPresenter
     private List<String> mTitleStrings;
     private SearchActionView mSearchActionView;
 
-    private B2BBusinessListFragment1 mAllFragment;
-    private B2BBusinessListFragment2 mWaitQuotedFragment;
-    private B2BBusinessListFragment3 mQuotedPriceFragment;
-    private B2BBusinessListFragment4 mExpiredFragment;
+    private B2BBusinessListFragment mAllFragment, mWaitQuotedFragment, mQuotedPriceFragment, mExpiredFragment;
 
     @Override
     protected int getLayout() {
@@ -52,15 +48,21 @@ public class PublicInquiryListActivity extends BaseMVPActivity<WorkPlatPresenter
         ActionBar bar = this.getSupportActionBar();
         bar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
         bar.setCustomView(mSearchActionView);
+        mSearchActionView.setSearchHint(R.string.str_public_inquiry_list);
 
         mTabPageIndicator = (TabPageIndicator) findViewById(R.id.tab_viewpager_tab);
         mUnderlinePageIndicator = (UnderlinePageIndicator) findViewById(R.id.tab_viewpager_undertab);
         mViewPager = (ViewPager) findViewById(R.id.tab_viewpager_vp);
 
-        mAllFragment = new B2BBusinessListFragment1();
-        mWaitQuotedFragment = new B2BBusinessListFragment2();
-        mQuotedPriceFragment = new B2BBusinessListFragment3();
-        mExpiredFragment = new B2BBusinessListFragment4();
+        mAllFragment = new B2BBusinessListFragment();
+        mWaitQuotedFragment = new B2BBusinessListFragment();
+        mQuotedPriceFragment = new B2BBusinessListFragment();
+        mExpiredFragment = new B2BBusinessListFragment();
+
+        mAllFragment.setListType(B2BBusinessListBean.PUBLIC_INQUIRY_LIST);
+        mWaitQuotedFragment.setListType(B2BBusinessListBean.PUBLIC_INQUIRY_LIST);
+        mQuotedPriceFragment.setListType(B2BBusinessListBean.PUBLIC_INQUIRY_LIST);
+        mExpiredFragment.setListType(B2BBusinessListBean.PUBLIC_INQUIRY_LIST);
 
         mFragments = new ArrayList<>();
         mFragments.add(mAllFragment);
@@ -91,6 +93,35 @@ public class PublicInquiryListActivity extends BaseMVPActivity<WorkPlatPresenter
     @Override
     protected void initEvent() {
 
+        mSearchActionView.setOnEnterActionListener(new SearchActionView.OnEnterActionListener() {
+            @Override
+            public void onEnterAction() {
+                if (CommonUtil.isNetWorkConnected(mContext)) {
+                    String text = mSearchActionView.getText();
+                    mAllFragment.getListData(1, text);
+                    mWaitQuotedFragment.getListData(1, text);
+                    mQuotedPriceFragment.getListData(1, text);
+                    mExpiredFragment.getListData(1, text);
+                } else {
+                    toast(R.string.networks_out);
+                }
+            }
+        });
+
+        mSearchActionView.setOnVoiceCompleteListener(new SearchActionView.OnVoiceCompleteListener() {
+            @Override
+            public void onVoiceComplete() {
+                if (CommonUtil.isNetWorkConnected(mContext)) {
+                    String text = mSearchActionView.getText();
+                    mAllFragment.getListData(1, text);
+                    mWaitQuotedFragment.getListData(1, text);
+                    mQuotedPriceFragment.getListData(1, text);
+                    mExpiredFragment.getListData(1, text);
+                } else {
+                    toast(R.string.networks_out);
+                }
+            }
+        });
     }
 
     @Override

+ 45 - 115
app_modular/appworks/src/main/java/com/uas/appworks/activity/PurchaseOrderListActivity.java

@@ -1,21 +1,18 @@
 package com.uas.appworks.activity;
 
-import android.os.Handler;
 import android.support.v4.app.Fragment;
 import android.support.v4.view.ViewPager;
 import android.support.v7.app.ActionBar;
 
+import com.core.app.Constants;
 import com.core.base.activity.BaseMVPActivity;
+import com.core.base.presenter.BasePresenter;
+import com.core.utils.CommonUtil;
 import com.core.widget.SearchActionView;
-import com.scwang.smartrefresh.layout.api.RefreshLayout;
-import com.scwang.smartrefresh.layout.listener.OnLoadmoreListener;
-import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
 import com.uas.appworks.R;
 import com.uas.appworks.adapter.TabViewpagerAdapter;
-import com.uas.appworks.fragment.B2BBusinessListFragment1;
+import com.uas.appworks.fragment.B2BBusinessListFragment;
 import com.uas.appworks.model.bean.B2BBusinessListBean;
-import com.uas.appworks.presenter.WorkPlatPresenter;
-import com.uas.appworks.view.WorkPlatView;
 import com.viewpagerindicator.TabPageIndicator;
 import com.viewpagerindicator.UnderlinePageIndicator;
 
@@ -28,7 +25,7 @@ import java.util.List;
  * @date 2018/1/15 10:09
  */
 
-public class PurchaseOrderListActivity extends BaseMVPActivity<WorkPlatPresenter> implements WorkPlatView {
+public class PurchaseOrderListActivity extends BaseMVPActivity {
 
     private TabPageIndicator mTabPageIndicator;
     private UnderlinePageIndicator mUnderlinePageIndicator;
@@ -37,9 +34,8 @@ public class PurchaseOrderListActivity extends BaseMVPActivity<WorkPlatPresenter
     private ViewPager mViewPager;
     private List<String> mTitleStrings;
     private SearchActionView mSearchActionView;
-    private RefreshLayout mRefreshLayout;
 
-    private B2BBusinessListFragment1 mAllFragment, mRepliedFragment, mWaitReplyFragment, mSettledFragment;
+    private B2BBusinessListFragment mAllFragment, mRepliedFragment, mWaitReplyFragment, mSettledFragment;
 
     @Override
     protected int getLayout() {
@@ -52,17 +48,24 @@ public class PurchaseOrderListActivity extends BaseMVPActivity<WorkPlatPresenter
         ActionBar bar = this.getSupportActionBar();
         bar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
         bar.setCustomView(mSearchActionView);
+        mSearchActionView.setSearchHint(R.string.str_purchase_order_list);
 
-        mRefreshLayout = $(R.id.b2b_list_refreshlayout);
-        mRefreshLayout.setEnableAutoLoadmore(false);
         mTabPageIndicator = (TabPageIndicator) findViewById(R.id.tab_viewpager_tab);
         mUnderlinePageIndicator = (UnderlinePageIndicator) findViewById(R.id.tab_viewpager_undertab);
         mViewPager = (ViewPager) findViewById(R.id.tab_viewpager_vp);
 
-        mAllFragment = new B2BBusinessListFragment1();
-        mRepliedFragment = new B2BBusinessListFragment1();
-        mWaitReplyFragment = new B2BBusinessListFragment1();
-        mSettledFragment = new B2BBusinessListFragment1();
+        mAllFragment = new B2BBusinessListFragment();
+        mRepliedFragment = new B2BBusinessListFragment();
+        mWaitReplyFragment = new B2BBusinessListFragment();
+        mSettledFragment = new B2BBusinessListFragment();
+
+        mAllFragment.setListType(B2BBusinessListBean.PURCHASE_ORDER_LIST);
+        mRepliedFragment.setListType(B2BBusinessListBean.PURCHASE_ORDER_LIST);
+        mRepliedFragment.setListState(Constants.FLAG.STATE_PURCHASE_ORDER_DONE);
+        mWaitReplyFragment.setListType(B2BBusinessListBean.PURCHASE_ORDER_LIST);
+        mWaitReplyFragment.setListState(Constants.FLAG.STATE_PURCHASE_ORDER_TODO);
+        mSettledFragment.setListType(B2BBusinessListBean.PURCHASE_ORDER_LIST);
+        mSettledFragment.setListState(Constants.FLAG.STATE_PURCHASE_ORDER_END);
 
         mFragments = new ArrayList<>();
         mFragments.add(mAllFragment);
@@ -86,107 +89,43 @@ public class PurchaseOrderListActivity extends BaseMVPActivity<WorkPlatPresenter
     }
 
     @Override
-    protected WorkPlatPresenter initPresenter() {
-        return new WorkPlatPresenter();
+    protected BasePresenter initPresenter() {
+        return null;
     }
 
     @Override
     protected void initEvent() {
-        mRefreshLayout.setOnRefreshListener(new OnRefreshListener() {
+
+        mSearchActionView.setOnEnterActionListener(new SearchActionView.OnEnterActionListener() {
             @Override
-            public void onRefresh(RefreshLayout refreshLayout) {
-                List<B2BBusinessListBean> b2BBusinessListBeans1 = new ArrayList<>();
-                List<B2BBusinessListBean> b2BBusinessListBeans2 = new ArrayList<>();
-                List<B2BBusinessListBean> b2BBusinessListBeans3 = new ArrayList<>();
-                List<B2BBusinessListBean> b2BBusinessListBeans4 = new ArrayList<>();
-                for (int i = 0; i < 20; i++) {
-                    B2BBusinessListBean b2BBusinessListBean = new B2BBusinessListBean();
-                    b2BBusinessListBean.setBillDate("dddd");
-                    b2BBusinessListBean.setBillNum("dddd");
-                    b2BBusinessListBean.setMaterialNum("ddd");
-                    b2BBusinessListBean.setMoney("ddd");
-                    b2BBusinessListBean.setItemType(B2BBusinessListBean.PURCHASE_ORDER_LIST);
-                    if (i < 7) {
-                        b2BBusinessListBean.setCompanyName("已回复");
-                        b2BBusinessListBean.setBillState("");
-
-                        b2BBusinessListBeans2.add(b2BBusinessListBean);
-                    } else if (i < 14) {
-                        b2BBusinessListBean.setCompanyName("待回复");
-                        b2BBusinessListBean.setBillState("");
-
-                        b2BBusinessListBeans3.add(b2BBusinessListBean);
-                    } else {
-                        b2BBusinessListBean.setCompanyName("已结案");
-                        b2BBusinessListBean.setBillState("");
-
-                        b2BBusinessListBeans4.add(b2BBusinessListBean);
-                    }
-
-                    b2BBusinessListBeans1.add(b2BBusinessListBean);
+            public void onEnterAction() {
+                if (CommonUtil.isNetWorkConnected(mContext)) {
+                    String text = mSearchActionView.getText();
+                    mAllFragment.getListData(1, text);
+                    mRepliedFragment.getListData(1, text);
+                    mWaitReplyFragment.getListData(1, text);
+                    mSettledFragment.getListData(1, text);
+                } else {
+                    toast(R.string.networks_out);
                 }
-
-                mAllFragment.onRefresh(b2BBusinessListBeans1);
-                mRepliedFragment.onRefresh(b2BBusinessListBeans2);
-                mWaitReplyFragment.onRefresh(b2BBusinessListBeans3);
-                mSettledFragment.onRefresh(b2BBusinessListBeans4);
-
-                new Handler().postDelayed(new Runnable() {
-                    @Override
-                    public void run() {
-                        mRefreshLayout.finishRefresh(0);
-                    }
-                }, 1000);
             }
         });
 
-        mRefreshLayout.setOnLoadmoreListener(new OnLoadmoreListener() {
+        mSearchActionView.setOnVoiceCompleteListener(new SearchActionView.OnVoiceCompleteListener() {
             @Override
-            public void onLoadmore(RefreshLayout refreshLayout) {
-                List<B2BBusinessListBean> b2BBusinessListBeans1 = new ArrayList<>();
-                List<B2BBusinessListBean> b2BBusinessListBeans2 = new ArrayList<>();
-                List<B2BBusinessListBean> b2BBusinessListBeans3 = new ArrayList<>();
-                List<B2BBusinessListBean> b2BBusinessListBeans4 = new ArrayList<>();
-                for (int i = 0; i < 20; i++) {
-                    B2BBusinessListBean b2BBusinessListBean = new B2BBusinessListBean();
-                    b2BBusinessListBean.setBillDate("dddd");
-                    b2BBusinessListBean.setBillNum("dddd");
-                    b2BBusinessListBean.setMaterialNum("ddd");
-                    b2BBusinessListBean.setMoney("ddd");
-                    b2BBusinessListBean.setItemType(B2BBusinessListBean.PURCHASE_ORDER_LIST);
-                    if (i < 7) {
-                        b2BBusinessListBean.setCompanyName("已回复");
-                        b2BBusinessListBean.setBillState("");
-
-                        b2BBusinessListBeans2.add(b2BBusinessListBean);
-                    } else if (i < 14) {
-                        b2BBusinessListBean.setCompanyName("待回复");
-                        b2BBusinessListBean.setBillState("");
-
-                        b2BBusinessListBeans3.add(b2BBusinessListBean);
-                    } else {
-                        b2BBusinessListBean.setCompanyName("已结案");
-                        b2BBusinessListBean.setBillState("");
-
-                        b2BBusinessListBeans4.add(b2BBusinessListBean);
-                    }
-
-                    b2BBusinessListBeans1.add(b2BBusinessListBean);
+            public void onVoiceComplete() {
+                if (CommonUtil.isNetWorkConnected(mContext)) {
+                    String text = mSearchActionView.getText();
+                    mAllFragment.getListData(1, text);
+                    mRepliedFragment.getListData(1, text);
+                    mWaitReplyFragment.getListData(1, text);
+                    mSettledFragment.getListData(1, text);
+                } else {
+                    toast(R.string.networks_out);
                 }
-
-                mAllFragment.onLoadMore(b2BBusinessListBeans1);
-                mRepliedFragment.onLoadMore(b2BBusinessListBeans2);
-                mWaitReplyFragment.onLoadMore(b2BBusinessListBeans3);
-                mSettledFragment.onLoadMore(b2BBusinessListBeans4);
-
-                new Handler().postDelayed(new Runnable() {
-                    @Override
-                    public void run() {
-                        mRefreshLayout.finishLoadmore(0);
-                    }
-                }, 1000);
             }
         });
+
     }
 
     @Override
@@ -196,21 +135,12 @@ public class PurchaseOrderListActivity extends BaseMVPActivity<WorkPlatPresenter
 
     @Override
     public void showLoading(String loadStr) {
-
+        progressDialog.show();
     }
 
     @Override
     public void hideLoading() {
-
+        progressDialog.dismiss();
     }
 
-    @Override
-    public void requestSuccess(int what, Object object) {
-
-    }
-
-    @Override
-    public void requestError(int what, String errorMsg) {
-
-    }
 }

+ 119 - 11
app_modular/appworks/src/main/java/com/uas/appworks/adapter/B2BDetailListAdapter.java

@@ -2,9 +2,12 @@ package com.uas.appworks.adapter;
 
 import android.content.Context;
 import android.support.v7.widget.RecyclerView;
+import android.text.Editable;
+import android.text.TextWatcher;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
+import android.widget.EditText;
 import android.widget.TextView;
 
 import com.uas.appworks.R;
@@ -18,11 +21,12 @@ import java.util.List;
  * @date 2018/1/16 16:12
  */
 
-public class B2BDetailListAdapter extends RecyclerView.Adapter<B2BDetailListAdapter.B2BDetailViewHolder> {
+public class B2BDetailListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
 
     private Context mContext;
     private LayoutInflater mLayoutInflater;
     private List<B2BDetailListBean> mB2BDetailListBeans;
+    private boolean isEditable = true;
 
     public B2BDetailListAdapter(Context context, List<B2BDetailListBean> b2BDetailListBeans) {
         mContext = context;
@@ -30,16 +34,91 @@ public class B2BDetailListAdapter extends RecyclerView.Adapter<B2BDetailListAdap
         mLayoutInflater = LayoutInflater.from(mContext);
     }
 
+    public boolean isEditable() {
+        return isEditable;
+    }
+
+    public void setEditable(boolean editable) {
+        isEditable = editable;
+        notifyDataSetChanged();
+    }
+
     @Override
-    public B2BDetailViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
-        View itemView = mLayoutInflater.inflate(R.layout.layout_list_b2b_detail, parent, false);
-        return new B2BDetailViewHolder(itemView);
+    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+        View itemView = null;
+        switch (viewType) {
+            case B2BDetailListBean.TYPE_DETAIL_TEXT:
+                itemView = mLayoutInflater.inflate(R.layout.layout_list_b2b_detail_text, parent, false);
+                return new DetailTextViewHolder(itemView);
+            case B2BDetailListBean.TYPE_DETAIL_TEXT_WHITE:
+                itemView = mLayoutInflater.inflate(R.layout.layout_list_b2b_white_detail_text, parent, false);
+                return new DetailWhiteTextViewHolder(itemView);
+            case B2BDetailListBean.TYPE_DETAIL_EDIT:
+                itemView = mLayoutInflater.inflate(R.layout.layout_list_b2b_detail_edit, parent, false);
+                return new DetailEditViewHolder(itemView);
+            default:
+                return null;
+        }
     }
 
     @Override
-    public void onBindViewHolder(B2BDetailViewHolder holder, int position) {
-        holder.captionTextView.setText(mB2BDetailListBeans.get(position).getCaption() + ":");
-        holder.valueTextView.setText(mB2BDetailListBeans.get(position).getValue());
+    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
+        if (holder == null) {
+            return;
+        }
+        B2BDetailListBean b2BDetailListBean = mB2BDetailListBeans.get(position);
+        if (holder instanceof DetailTextViewHolder) {
+            bindDetailTextViewHolder((DetailTextViewHolder) holder, b2BDetailListBean);
+        } else if (holder instanceof DetailWhiteTextViewHolder) {
+            bindDetailWhiteTextViewHolder((DetailWhiteTextViewHolder) holder, b2BDetailListBean);
+        } else if (holder instanceof DetailEditViewHolder) {
+            bindDetailEditViewHolder((DetailEditViewHolder) holder, b2BDetailListBean);
+        }
+    }
+
+    private void bindDetailTextViewHolder(DetailTextViewHolder holder, B2BDetailListBean b2BDetailListBean) {
+        holder.captionTextView.setText(b2BDetailListBean.getCaption() + ":");
+        holder.valueTextView.setText(b2BDetailListBean.getValue());
+    }
+
+    private void bindDetailEditViewHolder(DetailEditViewHolder holder, final B2BDetailListBean b2BDetailListBean) {
+        holder.captionTextView.setText(b2BDetailListBean.getCaption() + ":");
+        holder.unitTextView.setText(b2BDetailListBean.getUnit());
+
+        if (isEditable) {
+            holder.valueEditText.setVisibility(View.VISIBLE);
+            holder.valueTextView.setVisibility(View.GONE);
+
+            holder.valueEditText.setText(b2BDetailListBean.getValue());
+
+            holder.valueEditText.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) {
+                    b2BDetailListBean.setValue(editable.toString());
+                }
+            });
+        } else {
+            holder.valueEditText.setVisibility(View.GONE);
+            holder.valueTextView.setVisibility(View.VISIBLE);
+
+            holder.valueTextView.setText(b2BDetailListBean.getValue());
+        }
+
+    }
+
+    private void bindDetailWhiteTextViewHolder(DetailWhiteTextViewHolder holder, B2BDetailListBean b2BDetailListBean) {
+        holder.captionTextView.setText(b2BDetailListBean.getCaption() + ":");
+        holder.valueTextView.setText(b2BDetailListBean.getValue());
     }
 
     @Override
@@ -47,13 +126,42 @@ public class B2BDetailListAdapter extends RecyclerView.Adapter<B2BDetailListAdap
         return mB2BDetailListBeans == null ? 0 : mB2BDetailListBeans.size();
     }
 
-    class B2BDetailViewHolder extends RecyclerView.ViewHolder {
+    @Override
+    public int getItemViewType(int position) {
+        return mB2BDetailListBeans.get(position).getItemType();
+    }
+
+    class DetailTextViewHolder extends RecyclerView.ViewHolder {
+        private TextView captionTextView, valueTextView;
+
+        public DetailTextViewHolder(View itemView) {
+            super(itemView);
+            captionTextView = (TextView) itemView.findViewById(R.id.list_b2b_detail_text_caption_tv);
+            valueTextView = (TextView) itemView.findViewById(R.id.list_b2b_detail_text_value_tv);
+        }
+    }
+
+    class DetailWhiteTextViewHolder extends RecyclerView.ViewHolder {
         private TextView captionTextView, valueTextView;
 
-        public B2BDetailViewHolder(View itemView) {
+        public DetailWhiteTextViewHolder(View itemView) {
+            super(itemView);
+            captionTextView = (TextView) itemView.findViewById(R.id.list_b2b_detail_white_text_caption_tv);
+            valueTextView = (TextView) itemView.findViewById(R.id.list_b2b_detail_white_text_value_tv);
+        }
+    }
+
+    class DetailEditViewHolder extends RecyclerView.ViewHolder {
+        private TextView captionTextView, unitTextView;
+        private EditText valueEditText;
+        private TextView valueTextView;
+
+        public DetailEditViewHolder(View itemView) {
             super(itemView);
-            captionTextView = (TextView) itemView.findViewById(R.id.list_b2b_detail_caption_tv);
-            captionTextView = (TextView) itemView.findViewById(R.id.list_b2b_detail_value_tv);
+            captionTextView = (TextView) itemView.findViewById(R.id.list_b2b_detail_edit_caption_tv);
+            unitTextView = (TextView) itemView.findViewById(R.id.list_b2b_detail_edit_unit_tv);
+            valueEditText = (EditText) itemView.findViewById(R.id.list_b2b_detail_edit_value_et);
+            valueTextView = (TextView) itemView.findViewById(R.id.list_b2b_detail_edit_value_tv);
         }
     }
 }

+ 143 - 2
app_modular/appworks/src/main/java/com/uas/appworks/adapter/B2BQuotePriceAdapter.java

@@ -1,10 +1,151 @@
 package com.uas.appworks.adapter;
 
+import android.content.Context;
+import android.support.v7.widget.RecyclerView;
+import android.text.Editable;
+import android.text.TextWatcher;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.EditText;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import com.uas.appworks.R;
+import com.uas.appworks.model.bean.B2BQuotePriceBean;
+
+import java.util.List;
+
 /**
  * @author RaoMeng
- * @describe
+ * @describe 分段报价列表
  * @date 2018/1/16 20:35
  */
 
-public class B2BQuotePriceAdapter {
+public class B2BQuotePriceAdapter extends RecyclerView.Adapter<B2BQuotePriceAdapter.QuotePriceViewHolder> {
+
+    private Context mContext;
+    private LayoutInflater mLayoutInflater;
+    private List<B2BQuotePriceBean> mB2BQuotePriceBeans;
+    private boolean isEditable = true;
+
+    public B2BQuotePriceAdapter(Context context, List<B2BQuotePriceBean> b2BQuotePriceBeans) {
+        mContext = context;
+        mB2BQuotePriceBeans = b2BQuotePriceBeans;
+        mLayoutInflater = LayoutInflater.from(mContext);
+    }
+
+    public boolean isEditable() {
+        return isEditable;
+    }
+
+    public void setEditable(boolean editable) {
+        isEditable = editable;
+        notifyDataSetChanged();
+    }
+
+    public List<B2BQuotePriceBean> getB2BQuotePriceBeans() {
+        return mB2BQuotePriceBeans;
+    }
+
+    @Override
+    public QuotePriceViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+        View itemView = mLayoutInflater.inflate(R.layout.layout_list_subsection_quotation, parent, false);
+        return new QuotePriceViewHolder(itemView);
+    }
+
+    @Override
+    public void onBindViewHolder(final QuotePriceViewHolder holder, final int position) {
+        final B2BQuotePriceBean b2BQuotePriceBean = mB2BQuotePriceBeans.get(position);
+        holder.mNumTextView.setText((position + 1) + "");
+
+        if (isEditable) {
+            holder.mAmountEditText.setVisibility(View.VISIBLE);
+            holder.mPriceEditText.setVisibility(View.VISIBLE);
+            holder.mAmountTextView.setVisibility(View.GONE);
+            holder.mPriceTextView.setVisibility(View.GONE);
+
+            holder.mAmountEditText.setText(b2BQuotePriceBean.getAmount());
+            holder.mPriceEditText.setText(b2BQuotePriceBean.getPrice());
+            holder.mDeleteImageView.setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View view) {
+                    holder.mDeleteImageView.setEnabled(false);
+                    mB2BQuotePriceBeans.remove(position);
+                    notifyDataSetChanged();
+                    holder.mDeleteImageView.setEnabled(true);
+                }
+            });
+
+            holder.mAmountEditText.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) {
+                    String s = editable.toString();
+                    b2BQuotePriceBean.setAmount(s);
+                }
+            });
+
+            holder.mPriceEditText.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) {
+                    String s = editable.toString();
+                    b2BQuotePriceBean.setPrice(s);
+                }
+            });
+        } else {
+            holder.mAmountEditText.setVisibility(View.GONE);
+            holder.mPriceEditText.setVisibility(View.GONE);
+            holder.mAmountTextView.setVisibility(View.VISIBLE);
+            holder.mPriceTextView.setVisibility(View.VISIBLE);
+
+            holder.mAmountTextView.setText(b2BQuotePriceBean.getAmount());
+            holder.mPriceTextView.setText(b2BQuotePriceBean.getPrice());
+
+            holder.mDeleteImageView.setOnClickListener(null);
+        }
+
+
+    }
+
+    @Override
+    public int getItemCount() {
+        return mB2BQuotePriceBeans == null ? 0 : mB2BQuotePriceBeans.size();
+    }
+
+    class QuotePriceViewHolder extends RecyclerView.ViewHolder {
+        private TextView mNumTextView;
+        private EditText mAmountEditText, mPriceEditText;
+        private ImageView mDeleteImageView;
+        private TextView mAmountTextView, mPriceTextView;
+
+        public QuotePriceViewHolder(View itemView) {
+            super(itemView);
+            mNumTextView = (TextView) itemView.findViewById(R.id.list_subsection_quotation_num_tv);
+            mAmountEditText = (EditText) itemView.findViewById(R.id.list_subsection_quotation_amount_et);
+            mPriceEditText = (EditText) itemView.findViewById(R.id.list_subsection_quotation_price_et);
+            mDeleteImageView = (ImageView) itemView.findViewById(R.id.list_subsection_quotation_delete_iv);
+            mAmountTextView = (TextView) itemView.findViewById(R.id.list_subsection_quotation_amount_tv);
+            mPriceTextView = (TextView) itemView.findViewById(R.id.list_subsection_quotation_price_tv);
+        }
+    }
 }

+ 65 - 1
app_modular/appworks/src/main/java/com/uas/appworks/adapter/B2bBusinessListAdapter.java

@@ -6,6 +6,7 @@ import android.widget.TextView;
 
 import com.chad.library.adapter.base.BaseMultiItemQuickAdapter;
 import com.chad.library.adapter.base.BaseViewHolder;
+import com.core.app.Constants;
 import com.uas.appworks.R;
 import com.uas.appworks.model.bean.B2BBusinessListBean;
 
@@ -62,6 +63,43 @@ public class B2bBusinessListAdapter extends BaseMultiItemQuickAdapter<B2BBusines
         holder.setText(R.id.list_customer_inquiry_material_num_tv, b2BBusinessListBean.getMaterialNum());
         holder.setText(R.id.list_customer_inquiry_expiry_date_tv, b2BBusinessListBean.getExpiryDate());
 
+        String billState = b2BBusinessListBean.getBillState();
+        if (billState != null) {
+            switch (billState) {
+                case Constants.FLAG.STATE_CUSTOMER_INQUIRY_TODO:
+                    setCustomerBtn(holder, true, false, false, false, false, false);
+                    break;
+                case Constants.FLAG.STATE_CUSTOMER_INQUIRY_DONE:
+                    setCustomerBtn(holder, false, true, false, false, false, false);
+                    break;
+                case Constants.FLAG.STATE_CUSTOMER_INQUIRY_AGREED:
+                    setCustomerBtn(holder, false, false, true, false, false, false);
+                    break;
+                case Constants.FLAG.STATE_CUSTOMER_INQUIRY_END:
+                    setCustomerBtn(holder, false, false, false, true, false, false);
+                    break;
+                case Constants.FLAG.STATE_CUSTOMER_INQUIRY_REFUSED:
+                    setCustomerBtn(holder, false, false, false, false, true, false);
+                    break;
+                case Constants.FLAG.STATE_CUSTOMER_INQUIRY_INVALID:
+                    setCustomerBtn(holder, false, false, false, false, false, true);
+                    break;
+                default:
+                    setCustomerBtn(holder, false, false, false, false, false, false);
+                    break;
+            }
+        } else {
+            setCustomerBtn(holder, false, false, false, false, false, false);
+        }
+    }
+
+    private void setCustomerBtn(BaseViewHolder holder, boolean b1, boolean b2, boolean b3, boolean b4, boolean b5, boolean b6) {
+        holder.setVisible(R.id.list_customer_inquiry_wait_quoted_btn, b1);
+        holder.setVisible(R.id.list_customer_inquiry_quoted_price_btn, b2);
+        holder.setVisible(R.id.list_customer_inquiry_quotation_adopted_btn, b3);
+        holder.setVisible(R.id.list_customer_inquiry_expired_btn, b4);
+        holder.setVisible(R.id.list_customer_inquiry_quotation_unadopted_btn, b5);
+        holder.setVisible(R.id.list_customer_inquiry_invalid_btn, b6);
     }
 
     private void bindPurchaseOrder(BaseViewHolder holder, B2BBusinessListBean b2BBusinessListBean) {
@@ -69,8 +107,34 @@ public class B2bBusinessListAdapter extends BaseMultiItemQuickAdapter<B2BBusines
         holder.setText(R.id.list_purchase_order_bill_date_tv, b2BBusinessListBean.getBillDate());
         holder.setText(R.id.list_purchase_order_bill_num_tv, b2BBusinessListBean.getBillNum());
         holder.setText(R.id.list_purchase_order_material_num_tv, b2BBusinessListBean.getMaterialNum());
-        holder.setText(R.id.list_purchase_order_money_tv, b2BBusinessListBean.getMoney());
+        holder.setText(R.id.list_purchase_order_money_tv, "¥" + b2BBusinessListBean.getMoney());
+
+        String billState = b2BBusinessListBean.getBillState();
+        if (billState != null) {
+            switch (billState) {
+                case Constants.FLAG.STATE_PURCHASE_ORDER_DONE:
+                    setPurchaseBtn(holder, false, true, false);
+                    break;
+                case Constants.FLAG.STATE_PURCHASE_ORDER_TODO:
+                    setPurchaseBtn(holder, false, false, true);
+                    break;
+                case Constants.FLAG.STATE_PURCHASE_ORDER_END:
+                    setPurchaseBtn(holder, true, false, false);
+                    break;
+                default:
+                    setPurchaseBtn(holder, false, false, false);
+                    break;
+            }
+        } else {
+            setPurchaseBtn(holder, false, false, false);
+        }
+
+    }
 
+    private void setPurchaseBtn(BaseViewHolder holder, boolean b1, boolean b2, boolean b3) {
+        holder.setVisible(R.id.list_purchase_order_case_closed_btn, b1);
+        holder.setVisible(R.id.list_purchase_order_have_replied_btn, b2);
+        holder.setVisible(R.id.list_purchase_order_wait_reply_btn, b3);
     }
 
     class CustomerInquiryViewHolder extends BaseViewHolder {

+ 304 - 17
app_modular/appworks/src/main/java/com/uas/appworks/fragment/B2BBusinessListFragment.java

@@ -1,19 +1,44 @@
 package com.uas.appworks.fragment;
 
+import android.content.Intent;
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
+import android.text.TextUtils;
+import android.view.View;
+import android.view.ViewGroup;
 import android.widget.LinearLayout;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.chad.library.adapter.base.BaseQuickAdapter;
+import com.common.LogUtil;
+import com.common.data.DateFormatUtil;
+import com.common.data.JSONUtil;
+import com.core.app.Constants;
+import com.core.base.activity.BaseMVPActivity;
 import com.core.base.fragment.BaseMVPFragment;
+import com.core.utils.CommonUtil;
 import com.core.widget.RecycleViewDivider;
+import com.me.network.app.base.HttpCallback;
+import com.me.network.app.base.HttpParams;
+import com.me.network.app.http.HttpRequest;
+import com.me.network.app.http.Method;
+import com.scwang.smartrefresh.layout.api.RefreshLayout;
+import com.scwang.smartrefresh.layout.listener.OnLoadmoreListener;
+import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
+import com.uas.appworks.OA.platform.activity.PurchaseDetailsActivity;
 import com.uas.appworks.R;
+import com.uas.appworks.activity.CustomerInquiryDetailActivity;
+import com.uas.appworks.activity.PublicInquiryDetailActivity;
 import com.uas.appworks.adapter.B2bBusinessListAdapter;
 import com.uas.appworks.model.bean.B2BBusinessListBean;
 import com.uas.appworks.presenter.WorkPlatPresenter;
-import com.uas.appworks.view.WorkPlatView;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author RaoMeng
@@ -21,15 +46,51 @@ import java.util.List;
  * @date 2018/1/15 11:11
  */
 
-public class B2BBusinessListFragment1 extends BaseMVPFragment<WorkPlatPresenter> implements WorkPlatView {
+public class B2BBusinessListFragment extends BaseMVPFragment<WorkPlatPresenter> implements HttpCallback {
+    private static final int OBTAIN_B2B_LIST = 0x11;
 
     private RecyclerView mRecyclerView;
     private B2bBusinessListAdapter mB2BBusinessListAdapter;
     private List<B2BBusinessListBean> mB2BBusinessListBeans;
+    private RefreshLayout mRefreshLayout;
+    private int mListType = B2BBusinessListBean.PURCHASE_ORDER_LIST;
+    private int mPageIndex = 1, mPageSize = 20;
+    private String mListUrl, mListState = "", mEnuu, mKeyWord = "";
+
+    public int getListType() {
+        return mListType;
+    }
+
+    public void setListType(int listType) {
+        mListType = listType;
+
+        switch (mListType) {
+            case B2BBusinessListBean.PURCHASE_ORDER_LIST:
+                mListUrl = "mobile/sale/orders/info/search";
+                break;
+            case B2BBusinessListBean.CUSTOMER_INQUIRY_LIST:
+                mListUrl = "mobile/sale/inquiry/info/search";
+                break;
+            case B2BBusinessListBean.PUBLIC_INQUIRY_LIST:
+                mListUrl = "mobile/purc/inquiry/publicInquiryItem";
+                break;
+            default:
+                mListUrl = "mobile/sale/orders/info/search";
+
+        }
+    }
+
+    public String getListState() {
+        return mListState;
+    }
+
+    public void setListState(String listState) {
+        mListState = listState;
+    }
 
     @Override
     protected WorkPlatPresenter initPresenter() {
-        return new WorkPlatPresenter();
+        return null;
     }
 
     @Override
@@ -39,7 +100,11 @@ public class B2BBusinessListFragment1 extends BaseMVPFragment<WorkPlatPresenter>
 
     @Override
     protected void initViews() {
+        mEnuu = CommonUtil.getSharedPreferences(mContext, Constants.CACHE.B2B_BUSINESS_ENUU);
         mRecyclerView = $(R.id.b2b_list_rv);
+        mRefreshLayout = $(R.id.b2b_list_refreshlayout);
+        mRefreshLayout.setEnableAutoLoadmore(false);
+        mRefreshLayout.setEnableLoadmoreWhenContentNotFull(true);
 
         mB2BBusinessListBeans = new ArrayList<>();
         mB2BBusinessListAdapter = new B2bBusinessListAdapter(mContext, mB2BBusinessListBeans);
@@ -53,43 +118,265 @@ public class B2BBusinessListFragment1 extends BaseMVPFragment<WorkPlatPresenter>
 
     @Override
     protected void initEvents() {
+        mB2BBusinessListAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
+            @Override
+            public void onItemClick(BaseQuickAdapter baseQuickAdapter, View view, int i) {
+                List<B2BBusinessListBean> data = mB2BBusinessListAdapter.getData();
+                Intent intent = null;
+                switch (data.get(i).getItemType()) {
+                    case B2BBusinessListBean.PURCHASE_ORDER_LIST:
+                        intent = new Intent();
+                        intent.setClass(mContext, PurchaseDetailsActivity.class);
+                        intent.putExtra(Constants.FLAG.KEY_PURCHASE_ID, mB2BBusinessListBeans.get(i).getId());
+                        intent.putExtra(Constants.FLAG.KEY_PURCHASE_STATUS, mB2BBusinessListBeans.get(i).getBillState());
+                        break;
+                    case B2BBusinessListBean.CUSTOMER_INQUIRY_LIST:
+                        intent = new Intent();
+                        intent.setClass(mContext, CustomerInquiryDetailActivity.class);
+                        intent.putExtra(Constants.FLAG.EXTRA_B2B_LIST_ID, mB2BBusinessListBeans.get(i).getId());
+                        intent.putExtra(Constants.FLAG.EXTRA_B2B_LIST_STATE, mB2BBusinessListBeans.get(i).getBillState());
+                        intent.putExtra(Constants.FLAG.EXTRA_B2B_LIST_JSON, mB2BBusinessListBeans.get(i).getJsonData());
+                        break;
+                    case B2BBusinessListBean.PUBLIC_INQUIRY_LIST:
+                        intent = new Intent();
+                        intent.setClass(mContext, PublicInquiryDetailActivity.class);
+                        intent.putExtra(Constants.FLAG.EXTRA_B2B_LIST_ID, mB2BBusinessListBeans.get(i).getId());
+                        intent.putExtra(Constants.FLAG.EXTRA_B2B_LIST_STATE, mB2BBusinessListBeans.get(i).getBillState());
+                        intent.putExtra(Constants.FLAG.EXTRA_B2B_LIST_JSON, mB2BBusinessListBeans.get(i).getJsonData());
+                        break;
+
+                }
+                if (intent != null) {
+                    startActivity(intent);
+                }
+            }
+        });
 
+        mRefreshLayout.setOnRefreshListener(new OnRefreshListener() {
+            @Override
+            public void onRefresh(RefreshLayout refreshLayout) {
+                if (CommonUtil.isNetWorkConnected(mContext)) {
+                    mPageIndex = 1;
+                    getListData(mPageIndex, mKeyWord);
+                } else {
+                    toast(R.string.networks_out);
+                    mRefreshLayout.finishRefresh(500, false);
+                }
+            }
+        });
+
+        mRefreshLayout.setOnLoadmoreListener(new OnLoadmoreListener() {
+            @Override
+            public void onLoadmore(RefreshLayout refreshLayout) {
+                if (CommonUtil.isNetWorkConnected(mContext)) {
+                    mPageIndex++;
+                    getListData(mPageIndex, mKeyWord);
+                } else {
+                    toast(R.string.networks_out);
+                    mRefreshLayout.finishLoadmore(500, false);
+                }
+            }
+        });
     }
 
     @Override
     protected void initDatas() {
-
+        if (CommonUtil.isNetWorkConnected(mContext)) {
+            getListData(1, "");
+        } else {
+            mB2BBusinessListAdapter.setEmptyView(R.layout.view_net_error, (ViewGroup) mRecyclerView.getParent());
+        }
     }
 
-    public void onRefresh(List<B2BBusinessListBean> b2BBusinessListBeans) {
-        mB2BBusinessListBeans.clear();
-        mB2BBusinessListBeans.addAll(b2BBusinessListBeans);
-        mB2BBusinessListAdapter.notifyDataSetChanged();
-    }
+    public void getListData(int pageIndex, String keyWord) {
+        showLoading(null);
 
-    public void onLoadMore(List<B2BBusinessListBean> b2BBusinessListBeans) {
-        mB2BBusinessListBeans.addAll(b2BBusinessListBeans);
-        mB2BBusinessListAdapter.notifyDataSetChanged();
+        mPageIndex = pageIndex;
+        mKeyWord = keyWord;
+
+        Map<String, Object> params = new HashMap<>();
+//        params.put("en_uu", mEnuu);
+        params.put("en_uu", 10041559);
+//        params.put("user_tel", MyApplication.getInstance().mLoginUser.getTelephone());
+        params.put("user_tel", "15671616315");
+        params.put("_state", mListState);
+        params.put("page", mPageIndex);
+        params.put("size", mPageSize);
+        if (!TextUtils.isEmpty(mKeyWord)) {
+            params.put("keyword", mKeyWord);
+        }
+
+        HttpRequest.getInstance().sendRequest("http://192.168.253.102:8090/platform-b2b/",
+                new HttpParams.Builder()
+                        .url(mListUrl)
+                        .flag(OBTAIN_B2B_LIST)
+                        .method(Method.GET)
+                        .setHeaders(new HashMap<String, Object>())
+                        .setParams(params)
+                        .build(), this);
     }
 
     @Override
     public void showLoading(String loadStr) {
-        progressDialog.show();
+        if (mRefreshLayout != null && !mRefreshLayout.isRefreshing() && !mRefreshLayout.isLoading()) {
+            ((BaseMVPActivity) getActivity()).progressDialog.show();
+        }
     }
 
     @Override
     public void hideLoading() {
-        progressDialog.dismiss();
+        if (mRefreshLayout != null && mRefreshLayout.isRefreshing()) {
+            mRefreshLayout.finishRefresh(0);
+        }
+        if (mRefreshLayout != null && mRefreshLayout.isLoading()) {
+            mRefreshLayout.finishLoadmore(0);
+        }
+        ((BaseMVPActivity) getActivity()).progressDialog.dismiss();
     }
 
     @Override
-    public void requestSuccess(int what, Object object) {
+    public void onSuccess(int flag, Object o) {
+        try {
+            hideLoading();
+            String result = o.toString();
+            LogUtil.prinlnLongMsg("b2blistlogsuccess", result);
+            switch (flag) {
+                case OBTAIN_B2B_LIST:
+                    JSONObject resultObject = JSON.parseObject(result);
+                    JSONArray contentArray = resultObject.getJSONArray("content");
+                    if (contentArray == null || contentArray.size() == 0) {
+                        if (mPageIndex == 1) {
+                            mB2BBusinessListBeans.clear();
+                            mB2BBusinessListAdapter.notifyDataSetChanged();
+                            mB2BBusinessListAdapter.setEmptyView(R.layout.view_empty, (ViewGroup) mRecyclerView.getParent());
+                        }
+                        return;
+                    }
+                    if (mPageIndex == 1) {
+                        mB2BBusinessListBeans.clear();
+                    }
+                    switch (mListType) {
+                        case B2BBusinessListBean.PURCHASE_ORDER_LIST:
+                            analysisPurchaseOrder(contentArray);
+                            break;
+                        case B2BBusinessListBean.CUSTOMER_INQUIRY_LIST:
+                            analysisCustomerInquiry(contentArray);
+                            break;
+                        case B2BBusinessListBean.PUBLIC_INQUIRY_LIST:
+                            break;
+                    }
+                    break;
+                default:
+                    break;
+            }
+        } catch (Exception e) {
 
+        }
     }
 
-    @Override
-    public void requestError(int what, String errorMsg) {
+    private void analysisCustomerInquiry(JSONArray contentArray) {
+        for (int i = 0; i < contentArray.size(); i++) {
+            JSONObject contentObject = contentArray.getJSONObject(i);
+            if (contentObject != null) {
+                B2BBusinessListBean b2BBusinessListBean = new B2BBusinessListBean();
+                b2BBusinessListBean.setJsonData(contentObject.toString());
+                b2BBusinessListBean.setItemType(B2BBusinessListBean.CUSTOMER_INQUIRY_LIST);
+                b2BBusinessListBean.setId(JSONUtil.getText(contentObject, "id"));
+
+                JSONObject inquiryObject = contentObject.getJSONObject("inquiry");
+                if (inquiryObject != null) {
+                    JSONObject enterpriseObject = inquiryObject.getJSONObject("enterprise");
+                    if (enterpriseObject != null) {
+                        b2BBusinessListBean.setCompanyName(JSONUtil.getText(enterpriseObject, "enName"));
+                    }
+                    b2BBusinessListBean.setMaterialNum(JSONUtil.getText(inquiryObject, "code"));
+                    b2BBusinessListBean.setBillNum(JSONUtil.getText(inquiryObject, "id"));
+                    b2BBusinessListBean.setExpiryDate(DateFormatUtil.long2Str((JSONUtil.getLong(inquiryObject, "endDate") / 1000), "yyyy-MM-dd"));
+                }
+                b2BBusinessListBean.setBillDate(DateFormatUtil.long2Str((JSONUtil.getLong(contentObject, "date") / 1000), "yyyy-MM-dd"));
+                String invalid = JSONUtil.getText(contentObject, "invalid");
+                if ("1".equals(invalid)) {
+                    b2BBusinessListBean.setBillState(Constants.FLAG.STATE_CUSTOMER_INQUIRY_INVALID);
+                } else {
+                    String overdue = JSONUtil.getText(contentObject, "overdue");
+                    if ("1".equals(overdue)) {
+                        b2BBusinessListBean.setBillState(Constants.FLAG.STATE_CUSTOMER_INQUIRY_END);
+                    } else {
+                        String agreed = JSONUtil.getText(contentObject, "agreed");
+                        if ("1".equals(agreed)) {
+                            b2BBusinessListBean.setBillState(Constants.FLAG.STATE_CUSTOMER_INQUIRY_AGREED);
+                        } else if ("0".equals(agreed)) {
+                            b2BBusinessListBean.setBillState(Constants.FLAG.STATE_CUSTOMER_INQUIRY_REFUSED);
+                        } else {
+                            String status = JSONUtil.getText(contentObject, "status");
+                            if ("200".equals(status)) {
+                                b2BBusinessListBean.setBillState(Constants.FLAG.STATE_CUSTOMER_INQUIRY_TODO);
+                            } else if ("201".equals(status)) {
+                                b2BBusinessListBean.setBillState(Constants.FLAG.STATE_CUSTOMER_INQUIRY_DONE);
+                            }
+                        }
+                    }
+                }
+
+                mB2BBusinessListBeans.add(b2BBusinessListBean);
+            }
+        }
+        mB2BBusinessListAdapter.notifyDataSetChanged();
+    }
 
+    private void analysisPurchaseOrder(JSONArray contentArray) {
+        for (int i = 0; i < contentArray.size(); i++) {
+            JSONObject contentObject = contentArray.getJSONObject(i);
+            if (contentObject != null) {
+                B2BBusinessListBean b2BBusinessListBean = new B2BBusinessListBean();
+                b2BBusinessListBean.setJsonData(contentObject.toString());
+                b2BBusinessListBean.setItemType(B2BBusinessListBean.PURCHASE_ORDER_LIST);
+                b2BBusinessListBean.setId(JSONUtil.getText(contentObject, "id"));
+                b2BBusinessListBean.setCompanyName(JSONUtil.getText(contentObject, "receiveName"));
+                b2BBusinessListBean.setBillDate(DateFormatUtil.long2Str((JSONUtil.getLong(contentObject, "date") / 1000), "yyyy-MM-dd"));
+                b2BBusinessListBean.setBillNum(JSONUtil.getText(contentObject, "code"));
+                b2BBusinessListBean.setMaterialNum("ddd");
+                JSONArray orderItems = contentObject.getJSONArray("orderItems");
+                if (orderItems == null || orderItems.size() == 0) {
+                    b2BBusinessListBean.setMoney("0");
+                } else {
+                    long money = 0;
+                    for (int j = 0; j < orderItems.size(); j++) {
+                        JSONObject orderItem = orderItems.getJSONObject(j);
+                        long amount = JSONUtil.getLong(orderItem, "amount");
+                        money += amount;
+                    }
+                    b2BBusinessListBean.setMoney(money + "");
+                }
+                String end = JSONUtil.getText(contentObject, "end");
+                if (!TextUtils.isEmpty(end) && "1".equals(end)) {
+                    b2BBusinessListBean.setBillState(Constants.FLAG.STATE_PURCHASE_ORDER_END);
+                } else {
+                    String status = JSONUtil.getText(contentObject, "status");
+                    String reply = JSONUtil.getText(contentObject, "reply");
+                    if ("200".equals(status)) {
+                        b2BBusinessListBean.setBillState(Constants.FLAG.STATE_PURCHASE_ORDER_TODO);
+                    } else if ("201".equals(status) && "1".equals(reply)) {
+                        b2BBusinessListBean.setBillState(Constants.FLAG.STATE_PURCHASE_ORDER_DONE);
+                    }
+                }
+
+                mB2BBusinessListBeans.add(b2BBusinessListBean);
+            }
+        }
+        mB2BBusinessListAdapter.notifyDataSetChanged();
     }
 
+    @Override
+    public void onFail(int flag, String failStr) {
+        try {
+            hideLoading();
+            if (mPageIndex > 1) {
+                mPageIndex--;
+            }
+            toast(failStr);
+        } catch (Exception e) {
+
+        }
+    }
 }

+ 30 - 6
app_modular/appworks/src/main/java/com/uas/appworks/model/WorkPlatModel.java

@@ -41,7 +41,11 @@ public class WorkPlatModel implements IWorkPlatModel {
         } else {
             if (!CommonUtil.isNetWorkConnected(context)) {
                 if (workCallback != null) {
-                    workCallback.onFail(what, context.getString(R.string.networks_out));
+                    try {
+                        workCallback.onFail(what, context.getString(R.string.networks_out));
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                    }
                 } else {
                     ToastUtil.showToast(context, R.string.networks_out);
                 }
@@ -62,7 +66,11 @@ public class WorkPlatModel implements IWorkPlatModel {
     public void cityRequest(Context context, final HttpParams httpParams, final HttpCallback workCallback) {
         if (!CommonUtil.isNetWorkConnected(context)) {
             if (workCallback != null) {
-                workCallback.onFail(httpParams.getFlag(), context.getString(R.string.networks_out));
+                try {
+                    workCallback.onFail(httpParams.getFlag(), context.getString(R.string.networks_out));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
             } else {
                 ToastUtil.showToast(context, R.string.networks_out);
             }
@@ -220,17 +228,33 @@ public class WorkPlatModel implements IWorkPlatModel {
 
             CommonUtil.setUniqueSharedPreferences(context, Constants.WORK_MENU_CACHE, JSON.toJSONString(mMenuTypeBeen));
             if (mMenuTypeBeen == null) {
-                workCallback.onFail(what, "工作菜单缓存数据为空");
+                try {
+                    workCallback.onFail(what, "工作菜单缓存数据为空");
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
             } else {
-                workCallback.onSuccess(what, JSON.toJSONString(mMenuTypeBeen));
+                try {
+                    workCallback.onSuccess(what, JSON.toJSONString(mMenuTypeBeen));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
             }
         } else {
             CommonUtil.setUniqueSharedPreferences(context, Constants.WORK_MENU_CACHE, localJson);
             mMenuTypeBeen = localWorkMenuBeans;
             if (mMenuTypeBeen == null) {
-                workCallback.onFail(what, "工作菜单缓存数据为空");
+                try {
+                    workCallback.onFail(what, "工作菜单缓存数据为空");
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
             } else {
-                workCallback.onSuccess(what, localJson);
+                try {
+                    workCallback.onSuccess(what, localJson);
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
             }
         }
     }

+ 17 - 0
app_modular/appworks/src/main/java/com/uas/appworks/model/bean/B2BBusinessListBean.java

@@ -14,6 +14,7 @@ public class B2BBusinessListBean implements MultiItemEntity {
     public static final int PUBLIC_INQUIRY_LIST = 4;//公共询价
 
     private int mItemType = -1;
+    private String mId;//单据id
     private String mCompanyName;//公司名称
     private String mBillDate;//单据日期
     private String mBillNum;//单据编号
@@ -26,6 +27,7 @@ public class B2BBusinessListBean implements MultiItemEntity {
     private String mProductSpecification;//产品规格
     private String mProductAmount;//产品数量
     private String mProductBrand;//产品品牌
+    private String mJsonData;
 
     @Override
     public int getItemType() {
@@ -36,6 +38,14 @@ public class B2BBusinessListBean implements MultiItemEntity {
         mItemType = itemType;
     }
 
+    public String getId() {
+        return mId;
+    }
+
+    public void setId(String id) {
+        mId = id;
+    }
+
     public String getCompanyName() {
         return mCompanyName;
     }
@@ -132,4 +142,11 @@ public class B2BBusinessListBean implements MultiItemEntity {
         mProductBrand = productBrand;
     }
 
+    public String getJsonData() {
+        return mJsonData;
+    }
+
+    public void setJsonData(String jsonData) {
+        mJsonData = jsonData;
+    }
 }

+ 40 - 0
app_modular/appworks/src/main/java/com/uas/appworks/model/bean/B2BDetailListBean.java

@@ -7,8 +7,16 @@ package com.uas.appworks.model.bean;
  */
 
 public class B2BDetailListBean {
+    public final static int TYPE_DETAIL_TEXT = 11;
+    public final static int TYPE_DETAIL_TEXT_WHITE = 12;
+    public final static int TYPE_DETAIL_EDIT = 13;
+
+    private int mItemType = TYPE_DETAIL_TEXT;
     private String mCaption;
     private String mValue;
+    private String mUnit;
+    private String mFlag;
+    private String mType;
 
     public String getCaption() {
         return mCaption;
@@ -25,4 +33,36 @@ public class B2BDetailListBean {
     public void setValue(String value) {
         mValue = value;
     }
+
+    public int getItemType() {
+        return mItemType;
+    }
+
+    public void setItemType(int itemType) {
+        mItemType = itemType;
+    }
+
+    public String getUnit() {
+        return mUnit;
+    }
+
+    public void setUnit(String unit) {
+        mUnit = unit;
+    }
+
+    public String getFlag() {
+        return mFlag;
+    }
+
+    public void setFlag(String flag) {
+        mFlag = flag;
+    }
+
+    public String getType() {
+        return mType;
+    }
+
+    public void setType(String type) {
+        mType = type;
+    }
 }

+ 758 - 0
app_modular/appworks/src/main/java/com/uas/appworks/model/bean/B2BInquiryDetailBean.java

@@ -1,5 +1,7 @@
 package com.uas.appworks.model.bean;
 
+import java.util.List;
+
 /**
  * @author RaoMeng
  * @describe
@@ -7,4 +9,760 @@ package com.uas.appworks.model.bean;
  */
 
 public class B2BInquiryDetailBean {
+
+    /**
+     * attaches : []
+     * backStatus : 203
+     * currency : RMB
+     * custLap : 0
+     * date : 1515635975721
+     * decideStatus : 311
+     * enterprise : {"businesscode":"56749203","enAddress":"深圳市南山区英唐大厦6楼","enName":"深圳市胜芳电子有限公司","uu":10041559}
+     * erpstatus : 1
+     * fromDate : 1515635975890
+     * id : 1923777
+     * inquiry : {"attachs":[],"code":"XJ180111722","date":1515635975721,"enUU":10041166,"endDate":1517328000000,"enterprise":{"businesscode":"123451234567890","enAddress":"深圳市南山区","enName":"深圳市优软科技有限公司","uu":10041166},"id":941272,"inquirytype":"询价","invoice":0,"kind":"publicInquiry","overdue":0,"priceType":"采购","recorder":"何建清","recorderUU":1000003217,"remark":"测试询价","ship":"云南省临沧市沧源佤族自治县给个回话AA15678765456","sourceApp":"B2B","sourceId":6041}
+     * invalid : 0
+     * kind : publicInquiry
+     * leadtime : 12
+     * needquantity : 11
+     * number : 0
+     * overdue : 0
+     * product : {"cmpCode":"ICTEST1127123","code":"3-USTM-S207-T6-0S-2","enUU":10041166,"erpDate":1515225150272,"id":30373,"isPubsale":1,"isPurchase":1,"isShow":1,"kind":"IC","matchresults":[],"pcmpcode":"ICTEST1127123","sourceApp":"ERP","sourceId":100006450,"spec":"ICTEST1127123","title":"IC","unit":"PCS","userUU":200040149}
+     * productId : 30373
+     * replies : [{"id":2026498,"lapQty":0,"price":12}]
+     * replySendStatus : 202
+     * replyable : true
+     * sendStatus : 202
+     * status : 201
+     * taxrate : 17
+     * toDate : 1516204800000
+     * vendUU : 10041559
+     * vendUserUU : 1000003217
+     */
+
+    private int backStatus;
+    private String currency;
+    private int custLap;
+    private long date;
+    private int decideStatus;
+    private EnterpriseBean enterprise;
+    private int erpstatus;
+    private long fromDate;
+    private int id;
+    private InquiryBean inquiry;
+    private int invalid;
+    private String kind;
+    private int leadtime;
+    private int needquantity;
+    private int number;
+    private int overdue;
+    private ProductBean product;
+    private int productId;
+    private int replySendStatus;
+    private boolean replyable;
+    private int sendStatus;
+    private int status;
+    private int taxrate;
+    private long toDate;
+    private int vendUU;
+    private int vendUserUU;
+    private List<RepliesBean> replies;
+
+    public int getBackStatus() {
+        return backStatus;
+    }
+
+    public void setBackStatus(int backStatus) {
+        this.backStatus = backStatus;
+    }
+
+    public String getCurrency() {
+        return currency;
+    }
+
+    public void setCurrency(String currency) {
+        this.currency = currency;
+    }
+
+    public int getCustLap() {
+        return custLap;
+    }
+
+    public void setCustLap(int custLap) {
+        this.custLap = custLap;
+    }
+
+    public long getDate() {
+        return date;
+    }
+
+    public void setDate(long date) {
+        this.date = date;
+    }
+
+    public int getDecideStatus() {
+        return decideStatus;
+    }
+
+    public void setDecideStatus(int decideStatus) {
+        this.decideStatus = decideStatus;
+    }
+
+    public EnterpriseBean getEnterprise() {
+        return enterprise;
+    }
+
+    public void setEnterprise(EnterpriseBean enterprise) {
+        this.enterprise = enterprise;
+    }
+
+    public int getErpstatus() {
+        return erpstatus;
+    }
+
+    public void setErpstatus(int erpstatus) {
+        this.erpstatus = erpstatus;
+    }
+
+    public long getFromDate() {
+        return fromDate;
+    }
+
+    public void setFromDate(long fromDate) {
+        this.fromDate = fromDate;
+    }
+
+    public int getId() {
+        return id;
+    }
+
+    public void setId(int id) {
+        this.id = id;
+    }
+
+    public InquiryBean getInquiry() {
+        return inquiry;
+    }
+
+    public void setInquiry(InquiryBean inquiry) {
+        this.inquiry = inquiry;
+    }
+
+    public int getInvalid() {
+        return invalid;
+    }
+
+    public void setInvalid(int invalid) {
+        this.invalid = invalid;
+    }
+
+    public String getKind() {
+        return kind;
+    }
+
+    public void setKind(String kind) {
+        this.kind = kind;
+    }
+
+    public int getLeadtime() {
+        return leadtime;
+    }
+
+    public void setLeadtime(int leadtime) {
+        this.leadtime = leadtime;
+    }
+
+    public int getNeedquantity() {
+        return needquantity;
+    }
+
+    public void setNeedquantity(int needquantity) {
+        this.needquantity = needquantity;
+    }
+
+    public int getNumber() {
+        return number;
+    }
+
+    public void setNumber(int number) {
+        this.number = number;
+    }
+
+    public int getOverdue() {
+        return overdue;
+    }
+
+    public void setOverdue(int overdue) {
+        this.overdue = overdue;
+    }
+
+    public ProductBean getProduct() {
+        return product;
+    }
+
+    public void setProduct(ProductBean product) {
+        this.product = product;
+    }
+
+    public int getProductId() {
+        return productId;
+    }
+
+    public void setProductId(int productId) {
+        this.productId = productId;
+    }
+
+    public int getReplySendStatus() {
+        return replySendStatus;
+    }
+
+    public void setReplySendStatus(int replySendStatus) {
+        this.replySendStatus = replySendStatus;
+    }
+
+    public boolean isReplyable() {
+        return replyable;
+    }
+
+    public void setReplyable(boolean replyable) {
+        this.replyable = replyable;
+    }
+
+    public int getSendStatus() {
+        return sendStatus;
+    }
+
+    public void setSendStatus(int sendStatus) {
+        this.sendStatus = sendStatus;
+    }
+
+    public int getStatus() {
+        return status;
+    }
+
+    public void setStatus(int status) {
+        this.status = status;
+    }
+
+    public int getTaxrate() {
+        return taxrate;
+    }
+
+    public void setTaxrate(int taxrate) {
+        this.taxrate = taxrate;
+    }
+
+    public long getToDate() {
+        return toDate;
+    }
+
+    public void setToDate(long toDate) {
+        this.toDate = toDate;
+    }
+
+    public int getVendUU() {
+        return vendUU;
+    }
+
+    public void setVendUU(int vendUU) {
+        this.vendUU = vendUU;
+    }
+
+    public int getVendUserUU() {
+        return vendUserUU;
+    }
+
+    public void setVendUserUU(int vendUserUU) {
+        this.vendUserUU = vendUserUU;
+    }
+
+    public List<RepliesBean> getReplies() {
+        return replies;
+    }
+
+    public void setReplies(List<RepliesBean> replies) {
+        this.replies = replies;
+    }
+
+    public static class EnterpriseBean {
+        /**
+         * businesscode : 56749203
+         * enAddress : 深圳市南山区英唐大厦6楼
+         * enName : 深圳市胜芳电子有限公司
+         * uu : 10041559
+         */
+
+        private String businesscode;
+        private String enAddress;
+        private String enName;
+        private int uu;
+
+        public String getBusinesscode() {
+            return businesscode;
+        }
+
+        public void setBusinesscode(String businesscode) {
+            this.businesscode = businesscode;
+        }
+
+        public String getEnAddress() {
+            return enAddress;
+        }
+
+        public void setEnAddress(String enAddress) {
+            this.enAddress = enAddress;
+        }
+
+        public String getEnName() {
+            return enName;
+        }
+
+        public void setEnName(String enName) {
+            this.enName = enName;
+        }
+
+        public int getUu() {
+            return uu;
+        }
+
+        public void setUu(int uu) {
+            this.uu = uu;
+        }
+    }
+
+    public static class InquiryBean {
+        /**
+         * attachs : []
+         * code : XJ180111722
+         * date : 1515635975721
+         * enUU : 10041166
+         * endDate : 1517328000000
+         * enterprise : {"businesscode":"123451234567890","enAddress":"深圳市南山区","enName":"深圳市优软科技有限公司","uu":10041166}
+         * id : 941272
+         * inquirytype : 询价
+         * invoice : 0
+         * kind : publicInquiry
+         * overdue : 0
+         * priceType : 采购
+         * recorder : 何建清
+         * recorderUU : 1000003217
+         * remark : 测试询价
+         * ship : 云南省临沧市沧源佤族自治县给个回话AA15678765456
+         * sourceApp : B2B
+         * sourceId : 6041
+         */
+
+        private String code;
+        private long date;
+        private int enUU;
+        private long endDate;
+        private EnterpriseBean enterprise;
+        private int id;
+        private String inquirytype;
+        private int invoice;
+        private String kind;
+        private int overdue;
+        private String priceType;
+        private String recorder;
+        private int recorderUU;
+        private String remark;
+        private String ship;
+        private String sourceApp;
+        private int sourceId;
+
+        public String getCode() {
+            return code;
+        }
+
+        public void setCode(String code) {
+            this.code = code;
+        }
+
+        public long getDate() {
+            return date;
+        }
+
+        public void setDate(long date) {
+            this.date = date;
+        }
+
+        public int getEnUU() {
+            return enUU;
+        }
+
+        public void setEnUU(int enUU) {
+            this.enUU = enUU;
+        }
+
+        public long getEndDate() {
+            return endDate;
+        }
+
+        public void setEndDate(long endDate) {
+            this.endDate = endDate;
+        }
+
+        public EnterpriseBean getEnterprise() {
+            return enterprise;
+        }
+
+        public void setEnterprise(EnterpriseBean enterprise) {
+            this.enterprise = enterprise;
+        }
+
+        public int getId() {
+            return id;
+        }
+
+        public void setId(int id) {
+            this.id = id;
+        }
+
+        public String getInquirytype() {
+            return inquirytype;
+        }
+
+        public void setInquirytype(String inquirytype) {
+            this.inquirytype = inquirytype;
+        }
+
+        public int getInvoice() {
+            return invoice;
+        }
+
+        public void setInvoice(int invoice) {
+            this.invoice = invoice;
+        }
+
+        public String getKind() {
+            return kind;
+        }
+
+        public void setKind(String kind) {
+            this.kind = kind;
+        }
+
+        public int getOverdue() {
+            return overdue;
+        }
+
+        public void setOverdue(int overdue) {
+            this.overdue = overdue;
+        }
+
+        public String getPriceType() {
+            return priceType;
+        }
+
+        public void setPriceType(String priceType) {
+            this.priceType = priceType;
+        }
+
+        public String getRecorder() {
+            return recorder;
+        }
+
+        public void setRecorder(String recorder) {
+            this.recorder = recorder;
+        }
+
+        public int getRecorderUU() {
+            return recorderUU;
+        }
+
+        public void setRecorderUU(int recorderUU) {
+            this.recorderUU = recorderUU;
+        }
+
+        public String getRemark() {
+            return remark;
+        }
+
+        public void setRemark(String remark) {
+            this.remark = remark;
+        }
+
+        public String getShip() {
+            return ship;
+        }
+
+        public void setShip(String ship) {
+            this.ship = ship;
+        }
+
+        public String getSourceApp() {
+            return sourceApp;
+        }
+
+        public void setSourceApp(String sourceApp) {
+            this.sourceApp = sourceApp;
+        }
+
+        public int getSourceId() {
+            return sourceId;
+        }
+
+        public void setSourceId(int sourceId) {
+            this.sourceId = sourceId;
+        }
+
+        public static class EnterpriseBean {
+            /**
+             * businesscode : 123451234567890
+             * enAddress : 深圳市南山区
+             * enName : 深圳市优软科技有限公司
+             * uu : 10041166
+             */
+
+            private String businesscode;
+            private String enAddress;
+            private String enName;
+            private int uu;
+
+            public String getBusinesscode() {
+                return businesscode;
+            }
+
+            public void setBusinesscode(String businesscode) {
+                this.businesscode = businesscode;
+            }
+
+            public String getEnAddress() {
+                return enAddress;
+            }
+
+            public void setEnAddress(String enAddress) {
+                this.enAddress = enAddress;
+            }
+
+            public String getEnName() {
+                return enName;
+            }
+
+            public void setEnName(String enName) {
+                this.enName = enName;
+            }
+
+            public int getUu() {
+                return uu;
+            }
+
+            public void setUu(int uu) {
+                this.uu = uu;
+            }
+        }
+    }
+
+    public static class ProductBean {
+        /**
+         * cmpCode : ICTEST1127123
+         * code : 3-USTM-S207-T6-0S-2
+         * enUU : 10041166
+         * erpDate : 1515225150272
+         * id : 30373
+         * isPubsale : 1
+         * isPurchase : 1
+         * isShow : 1
+         * kind : IC
+         * matchresults : []
+         * pcmpcode : ICTEST1127123
+         * sourceApp : ERP
+         * sourceId : 100006450
+         * spec : ICTEST1127123
+         * title : IC
+         * unit : PCS
+         * userUU : 200040149
+         */
+
+        private String cmpCode;
+        private String code;
+        private int enUU;
+        private long erpDate;
+        private int id;
+        private int isPubsale;
+        private int isPurchase;
+        private int isShow;
+        private String kind;
+        private String pcmpcode;
+        private String sourceApp;
+        private int sourceId;
+        private String spec;
+        private String title;
+        private String unit;
+        private int userUU;
+        private List<?> matchresults;
+
+        public String getCmpCode() {
+            return cmpCode;
+        }
+
+        public void setCmpCode(String cmpCode) {
+            this.cmpCode = cmpCode;
+        }
+
+        public String getCode() {
+            return code;
+        }
+
+        public void setCode(String code) {
+            this.code = code;
+        }
+
+        public int getEnUU() {
+            return enUU;
+        }
+
+        public void setEnUU(int enUU) {
+            this.enUU = enUU;
+        }
+
+        public long getErpDate() {
+            return erpDate;
+        }
+
+        public void setErpDate(long erpDate) {
+            this.erpDate = erpDate;
+        }
+
+        public int getId() {
+            return id;
+        }
+
+        public void setId(int id) {
+            this.id = id;
+        }
+
+        public int getIsPubsale() {
+            return isPubsale;
+        }
+
+        public void setIsPubsale(int isPubsale) {
+            this.isPubsale = isPubsale;
+        }
+
+        public int getIsPurchase() {
+            return isPurchase;
+        }
+
+        public void setIsPurchase(int isPurchase) {
+            this.isPurchase = isPurchase;
+        }
+
+        public int getIsShow() {
+            return isShow;
+        }
+
+        public void setIsShow(int isShow) {
+            this.isShow = isShow;
+        }
+
+        public String getKind() {
+            return kind;
+        }
+
+        public void setKind(String kind) {
+            this.kind = kind;
+        }
+
+        public String getPcmpcode() {
+            return pcmpcode;
+        }
+
+        public void setPcmpcode(String pcmpcode) {
+            this.pcmpcode = pcmpcode;
+        }
+
+        public String getSourceApp() {
+            return sourceApp;
+        }
+
+        public void setSourceApp(String sourceApp) {
+            this.sourceApp = sourceApp;
+        }
+
+        public int getSourceId() {
+            return sourceId;
+        }
+
+        public void setSourceId(int sourceId) {
+            this.sourceId = sourceId;
+        }
+
+        public String getSpec() {
+            return spec;
+        }
+
+        public void setSpec(String spec) {
+            this.spec = spec;
+        }
+
+        public String getTitle() {
+            return title;
+        }
+
+        public void setTitle(String title) {
+            this.title = title;
+        }
+
+        public String getUnit() {
+            return unit;
+        }
+
+        public void setUnit(String unit) {
+            this.unit = unit;
+        }
+
+        public int getUserUU() {
+            return userUU;
+        }
+
+        public void setUserUU(int userUU) {
+            this.userUU = userUU;
+        }
+
+        public List<?> getMatchresults() {
+            return matchresults;
+        }
+
+        public void setMatchresults(List<?> matchresults) {
+            this.matchresults = matchresults;
+        }
+    }
+
+    public static class RepliesBean {
+        /**
+         * id : 2026498
+         * lapQty : 0
+         * price : 12
+         */
+
+        private int id;
+        private int lapQty;
+        private int price;
+
+        public int getId() {
+            return id;
+        }
+
+        public void setId(int id) {
+            this.id = id;
+        }
+
+        public int getLapQty() {
+            return lapQty;
+        }
+
+        public void setLapQty(int lapQty) {
+            this.lapQty = lapQty;
+        }
+
+        public int getPrice() {
+            return price;
+        }
+
+        public void setPrice(int price) {
+            this.price = price;
+        }
+    }
 }

+ 37 - 1
app_modular/appworks/src/main/java/com/uas/appworks/model/bean/B2BQuotePriceBean.java

@@ -2,9 +2,45 @@ package com.uas.appworks.model.bean;
 
 /**
  * @author RaoMeng
- * @describe
+ * @describe 分段报价
  * @date 2018/1/16 20:44
  */
 
 public class B2BQuotePriceBean {
+    private long mId;
+    private String mAmount;
+    private String mPrice;
+
+    public long getId() {
+        return mId;
+    }
+
+    public void setId(long id) {
+        mId = id;
+    }
+
+    public String getAmount() {
+        return mAmount;
+    }
+
+    public void setAmount(String amount) {
+        mAmount = amount;
+    }
+
+    public String getPrice() {
+        return mPrice;
+    }
+
+    public void setPrice(String price) {
+        mPrice = price;
+    }
+
+    @Override
+    public String toString() {
+        return "B2BQuotePriceBean{" +
+                "mId=" + mId +
+                ", mAmount='" + mAmount + '\'' +
+                ", mPrice='" + mPrice + '\'' +
+                '}';
+    }
 }

+ 4 - 4
app_modular/appworks/src/main/res/drawable/selector_b2b_list_item_bg.xml

@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:drawable="@color/me_menu_item_press" android:state_checked="true"/>
-    <item android:drawable="@color/me_menu_item_press" android:state_pressed="true"/>
-    <item android:drawable="@color/me_menu_item_press" android:state_selected="true"/>
+    <item android:drawable="@color/me_menu_item_press" android:state_checked="true" />
+    <item android:drawable="@color/me_menu_item_press" android:state_pressed="true" />
+    <item android:drawable="@color/me_menu_item_press" android:state_selected="true" />
 
-    <item android:drawable="@color/me_menu_item_normal"/>
+    <item android:drawable="@color/white" />
 </selector>

+ 6 - 3
app_modular/appworks/src/main/res/drawable/shape_b2b_detail_edittext.xml

@@ -1,4 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-
-</selector>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+       android:shape="rectangle">
+    <stroke
+        android:width="1sp"
+        android:color="@color/gray_light" />
+</shape>

+ 96 - 24
app_modular/appworks/src/main/res/layout/activity_customer_inquiry_detail.xml

@@ -1,46 +1,118 @@
 <?xml version="1.0" encoding="utf-8"?>
-<ScrollView
+<android.support.v4.widget.NestedScrollView
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
-    android:layout_height="match_parent">
+    android:layout_height="match_parent"
+    android:background="@color/white">
 
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
+        android:focusable="true"
+        android:focusableInTouchMode="true"
         android:orientation="vertical">
 
         <android.support.v7.widget.RecyclerView
+            android:id="@+id/customer_inquiry_detail_data_rv"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:background="@color/b2b_tab_bg"
             android:overScrollMode="never"
             android:scrollbars="none" />
 
+        <TextView
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:padding="12dp"
+            android:text="分段报价"
+            android:textColor="@color/black" />
+
         <LinearLayout
             android:layout_width="match_parent"
-            android:layout_height="46dp"
-            android:gravity="center_vertical"
-            android:orientation="horizontal"
-            android:paddingLeft="12dp">
+            android:layout_height="wrap_content"
+            android:layout_marginLeft="12dp"
+            android:layout_marginRight="12dp"
+            android:orientation="vertical">
 
-            <TextView
-                android:layout_width="0dp"
-                android:layout_height="wrap_content"
-                android:layout_weight="1"
-                android:text="@string/str_product_name"
-                android:textColor="@color/black"
-                android:textSize="14sp" />
-
-            <EditText
-                android:layout_width="0dp"
-                android:layout_height="match_parent"
-                android:layout_weight="2" />
-
-            <TextView
-                android:layout_width="0dp"
+            <View
+                style="@style/expense_table_h_1dp" />
+
+            <LinearLayout
+                android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:layout_weight="1" />
+                android:orientation="horizontal">
+
+                <View
+                    style="@style/expense_table_v_1dp" />
+
+                <TextView
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center_vertical"
+                    android:layout_weight="1"
+                    android:paddingLeft="10dp"
+                    android:text="@string/str_divisions_count" />
+
+                <View
+                    style="@style/expense_table_v_1dp" />
+
+                <TextView
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center_vertical"
+                    android:layout_weight="2"
+                    android:paddingLeft="10dp"
+                    android:text="@string/str_segments_amount"
+                    />
+
+                <View
+                    style="@style/expense_table_v_1dp" />
+
+                <TextView
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center_vertical"
+                    android:layout_weight="2"
+                    android:paddingLeft="10dp"
+                    android:text="@string/str_segments_price"
+                    />
+
+                <View
+                    style="@style/expense_table_v_1dp" />
+
+                <ImageView
+                    android:id="@+id/customer_inquiry_detail_add_iv"
+                    android:layout_width="0dp"
+                    android:layout_height="20dp"
+                    android:layout_gravity="center_vertical"
+                    android:layout_weight="1"
+                    android:src="@drawable/ic_b2b_add" />
+
+                <View
+                    style="@style/expense_table_v_1dp"
+                    />
+            </LinearLayout>
+
+            <View
+                style="@style/expense_table_h_1dp" />
         </LinearLayout>
+
+        <android.support.v7.widget.RecyclerView
+            android:id="@+id/customer_inquiry_detail_quote_rv"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginBottom="20dp" />
+
+        <Button
+            android:id="@+id/customer_inquiry_detail_quote_btn"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_margin="16dp"
+            android:background="@drawable/bg_bule_btn"
+            android:padding="8dp"
+            android:text="@string/str_quote_price"
+            android:textColor="@color/white"
+            android:textSize="@dimen/text_main"
+            android:visibility="gone"/>
     </LinearLayout>
-</ScrollView>
+</android.support.v4.widget.NestedScrollView>

+ 6 - 2
app_modular/appworks/src/main/res/layout/activity_public_inquiry_detail.xml

@@ -10,7 +10,9 @@
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:background="@color/b2b_tab_bg"
-        android:padding="12dp"
+        android:paddingLeft="12dp"
+        android:paddingTop="8dp"
+        android:paddingBottom="8dp"
         android:text="@string/str_inquiry_information"
         android:textColor="@color/black"
         android:textSize="16sp" />
@@ -31,7 +33,9 @@
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:background="@color/b2b_tab_bg"
-        android:padding="12dp"
+        android:paddingLeft="12dp"
+        android:paddingTop="8dp"
+        android:paddingBottom="8dp"
         android:text="@string/str_material_information"
         android:textColor="@color/black"
         android:textSize="16sp" />

+ 13 - 37
app_modular/appworks/src/main/res/layout/activity_tab_viewpager.xml

@@ -1,48 +1,24 @@
 <?xml version="1.0" encoding="utf-8"?>
-<com.scwang.smartrefresh.layout.SmartRefreshLayout
-    android:id="@+id/b2b_list_refreshlayout"
+<LinearLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    app:srlFixedHeaderViewId="@+id/tab_viewpager_tab_ll">
+    android:orientation="vertical">
 
-    <com.scwang.smartrefresh.layout.header.ClassicsHeader
+    <com.viewpagerindicator.TabPageIndicator
+        android:id="@+id/tab_viewpager_tab"
         android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        app:srlAccentColor="@android:color/darker_gray" />
+        android:layout_height="wrap_content" />
 
-    <LinearLayout
+    <com.viewpagerindicator.UnderlinePageIndicatorEx
+        android:id="@+id/tab_viewpager_undertab"
         android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:orientation="vertical">
+        android:layout_height="3dp" />
 
-        <LinearLayout
-            android:id="@+id/tab_viewpager_tab_ll"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:orientation="vertical">
-
-            <com.viewpagerindicator.TabPageIndicator
-                android:id="@+id/tab_viewpager_tab"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content" />
-
-            <com.viewpagerindicator.UnderlinePageIndicatorEx
-                android:id="@+id/tab_viewpager_undertab"
-                android:layout_width="match_parent"
-                android:layout_height="3dp" />
-        </LinearLayout>
-
-        <android.support.v4.view.ViewPager
-            android:id="@+id/tab_viewpager_vp"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent" />
-
-    </LinearLayout>
-
-    <com.scwang.smartrefresh.layout.footer.ClassicsFooter
+    <android.support.v4.view.ViewPager
+        android:id="@+id/tab_viewpager_vp"
         android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        app:srlAccentColor="@android:color/darker_gray" />
-</com.scwang.smartrefresh.layout.SmartRefreshLayout>
+        android:layout_height="match_parent" />
+
+</LinearLayout>

+ 22 - 4
app_modular/appworks/src/main/res/layout/fragment_b2b_list.xml

@@ -1,9 +1,27 @@
 <?xml version="1.0" encoding="utf-8"?>
-<android.support.v7.widget.RecyclerView
-    android:id="@+id/b2b_list_rv"
+<com.scwang.smartrefresh.layout.SmartRefreshLayout
+    android:id="@+id/b2b_list_refreshlayout"
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:overScrollMode="never"
-    android:scrollbars="none" />
+    app:srlFixedHeaderViewId="@+id/tab_viewpager_tab_ll">
+
+    <com.scwang.smartrefresh.layout.header.ClassicsHeader
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        app:srlAccentColor="@android:color/darker_gray" />
+
+    <android.support.v7.widget.RecyclerView
+        android:id="@+id/b2b_list_rv"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:overScrollMode="never"
+        android:scrollbars="none" />
+
+
+    <com.scwang.smartrefresh.layout.footer.ClassicsFooter
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        app:srlAccentColor="@android:color/darker_gray" />
+</com.scwang.smartrefresh.layout.SmartRefreshLayout>

+ 46 - 11
app_modular/appworks/src/main/res/layout/layout_list_b2b_detail_edit.xml

@@ -3,27 +3,62 @@
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:layout_marginLeft="6dp"
+    android:layout_height="46dp"
+    android:background="@color/white"
+    android:focusable="true"
+    android:focusableInTouchMode="true"
     android:gravity="center_vertical"
     android:orientation="horizontal"
-    android:padding="6dp">
+    android:paddingBottom="6dp"
+    android:paddingLeft="12dp"
+    android:paddingTop="6dp">
 
     <TextView
-        android:id="@+id/list_b2b_detail_caption_tv"
+        android:id="@+id/list_b2b_detail_edit_caption_tv"
         android:layout_width="0dp"
         android:layout_height="wrap_content"
         android:layout_weight="1"
-        android:text="@string/str_product_name"
-        android:textSize="14sp" />
+        android:text="交货周期:"
+        android:textColor="@color/black"
+        tools:textSize="14sp" />
+
+    <FrameLayout
+        android:layout_width="0dp"
+        android:layout_height="match_parent"
+        android:layout_weight="2">
+
+        <EditText
+            android:id="@+id/list_b2b_detail_edit_value_et"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:background="@drawable/shape_b2b_detail_edittext"
+            android:gravity="right|center_vertical"
+            android:hint="@string/common_input2"
+            android:inputType="number"
+            android:paddingLeft="10dp"
+            android:paddingRight="10dp"
+            android:textSize="14sp"
+            android:visibility="gone" />
+
+        <TextView
+            android:id="@+id/list_b2b_detail_edit_value_tv"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:background="@drawable/shape_b2b_detail_edittext"
+            android:gravity="right|center_vertical"
+            android:paddingLeft="10dp"
+            android:paddingRight="10dp"
+            android:textSize="14sp"
+            android:visibility="gone" />
+    </FrameLayout>
 
     <TextView
-        android:id="@+id/list_b2b_detail_value_tv"
+        android:id="@+id/list_b2b_detail_edit_unit_tv"
         android:layout_width="0dp"
         android:layout_height="wrap_content"
-        android:layout_marginLeft="4dp"
-        android:layout_weight="3"
-        android:textColor="@color/black"
+        android:layout_marginLeft="6dp"
+        android:layout_weight="1"
+        android:gravity="left|center_vertical"
         android:textSize="14sp"
-        tools:text="2018-01-21" />
+        tools:text="" />
 </LinearLayout>

+ 6 - 5
app_modular/appworks/src/main/res/layout/layout_list_b2b_detail_text.xml

@@ -4,21 +4,22 @@
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:layout_marginLeft="6dp"
+    android:background="@color/b2b_tab_bg"
     android:gravity="center_vertical"
     android:orientation="horizontal"
-    android:padding="6dp">
+    android:padding="4dp">
 
     <TextView
-        android:id="@+id/list_b2b_detail_caption_tv"
+        android:id="@+id/list_b2b_detail_text_caption_tv"
         android:layout_width="0dp"
-        android:layout_height="wrap_content"
+        android:layout_height="match_parent"
+        android:layout_marginLeft="8dp"
         android:layout_weight="1"
         android:text="@string/str_product_name"
         android:textSize="14sp" />
 
     <TextView
-        android:id="@+id/list_b2b_detail_value_tv"
+        android:id="@+id/list_b2b_detail_text_value_tv"
         android:layout_width="0dp"
         android:layout_height="wrap_content"
         android:layout_marginLeft="4dp"

+ 5 - 4
app_modular/appworks/src/main/res/layout/layout_list_b2b_white_detail_text.xml

@@ -4,21 +4,22 @@
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:layout_marginLeft="6dp"
+    android:background="@color/white"
     android:gravity="center_vertical"
     android:orientation="horizontal"
-    android:padding="6dp">
+    android:padding="4dp">
 
     <TextView
-        android:id="@+id/list_b2b_detail_text_caption_tv"
+        android:id="@+id/list_b2b_detail_white_text_caption_tv"
         android:layout_width="0dp"
         android:layout_height="wrap_content"
+        android:layout_marginLeft="8dp"
         android:layout_weight="1"
         android:text="@string/str_product_name"
         android:textSize="14sp" />
 
     <TextView
-        android:id="@+id/list_b2b_detail_text_value_tv"
+        android:id="@+id/list_b2b_detail_white_text_value_tv"
         android:layout_width="0dp"
         android:layout_height="wrap_content"
         android:layout_marginLeft="4dp"

+ 61 - 12
app_modular/appworks/src/main/res/layout/layout_list_customer_inquiry.xml

@@ -5,6 +5,7 @@
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
+    android:background="@drawable/selector_b2b_list_item_bg"
     android:padding="12dp">
 
     <LinearLayout
@@ -47,8 +48,8 @@
                 android:layout_width="0dp"
                 android:layout_height="wrap_content"
                 android:layout_weight="1"
-                android:textSize="14sp"
-                android:text="@string/str_bill_num" />
+                android:text="@string/str_bill_num"
+                android:textSize="14sp" />
 
             <TextView
                 android:id="@+id/list_customer_inquiry_bill_num_tv"
@@ -72,8 +73,8 @@
                 android:layout_width="0dp"
                 android:layout_height="wrap_content"
                 android:layout_weight="1"
-                android:textSize="14sp"
-                android:text="@string/str_material_num" />
+                android:text="@string/str_material_num"
+                android:textSize="14sp" />
 
             <TextView
                 android:id="@+id/list_customer_inquiry_material_num_tv"
@@ -97,8 +98,8 @@
                 android:layout_width="0dp"
                 android:layout_height="wrap_content"
                 android:layout_weight="1"
-                android:textSize="14sp"
-                android:text="@string/str_expiry_date" />
+                android:text="@string/str_expiry_date"
+                android:textSize="14sp" />
 
             <TextView
                 android:id="@+id/list_customer_inquiry_expiry_date_tv"
@@ -120,12 +121,13 @@
         android:layout_alignParentBottom="true"
         android:layout_alignParentRight="true"
         android:background="@drawable/selector_cancel_bg"
-        android:paddingTop="4dp"
         android:paddingBottom="4dp"
         android:paddingLeft="8dp"
         android:paddingRight="8dp"
+        android:paddingTop="4dp"
         android:text="@string/str_quotation_adopted"
-        android:textColor="@color/selector_cancel_text_color" />
+        android:textColor="@color/selector_cancel_text_color"
+        android:visibility="gone" />
 
     <TextView
         android:id="@+id/list_customer_inquiry_expired_btn"
@@ -134,12 +136,13 @@
         android:layout_alignParentBottom="true"
         android:layout_alignParentRight="true"
         android:background="@drawable/selector_cancel_bg"
-        android:paddingTop="4dp"
         android:paddingBottom="4dp"
         android:paddingLeft="8dp"
         android:paddingRight="8dp"
+        android:paddingTop="4dp"
         android:text="@string/str_expired"
-        android:textColor="@color/selector_cancel_text_color" />
+        android:textColor="@color/selector_cancel_text_color"
+        android:visibility="gone" />
 
     <TextView
         android:id="@+id/list_customer_inquiry_quoted_price_btn"
@@ -148,11 +151,57 @@
         android:layout_alignParentBottom="true"
         android:layout_alignParentRight="true"
         android:background="@drawable/selector_cancel_bg"
-        android:paddingTop="4dp"
         android:paddingBottom="4dp"
         android:paddingLeft="8dp"
         android:paddingRight="8dp"
+        android:paddingTop="4dp"
         android:text="@string/str_quoted_price"
-        android:textColor="@color/selector_cancel_text_color" />
+        android:textColor="@color/selector_cancel_text_color"
+        android:visibility="gone" />
+
+    <TextView
+        android:id="@+id/list_customer_inquiry_wait_quoted_btn"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentBottom="true"
+        android:layout_alignParentRight="true"
+        android:background="@drawable/selector_cancel_bg"
+        android:paddingBottom="4dp"
+        android:paddingLeft="8dp"
+        android:paddingRight="8dp"
+        android:paddingTop="4dp"
+        android:text="@string/str_wait_quoted"
+        android:textColor="@color/selector_cancel_text_color"
+        android:visibility="gone" />
+
+    <TextView
+        android:id="@+id/list_customer_inquiry_quotation_unadopted_btn"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentBottom="true"
+        android:layout_alignParentRight="true"
+        android:background="@drawable/selector_cancel_bg"
+        android:paddingBottom="4dp"
+        android:paddingLeft="8dp"
+        android:paddingRight="8dp"
+        android:paddingTop="4dp"
+        android:text="@string/str_quotation_unadopted"
+        android:textColor="@color/selector_cancel_text_color"
+        android:visibility="gone" />
+
+    <TextView
+        android:id="@+id/list_customer_inquiry_invalid_btn"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentBottom="true"
+        android:layout_alignParentRight="true"
+        android:background="@drawable/selector_cancel_bg"
+        android:paddingBottom="4dp"
+        android:paddingLeft="8dp"
+        android:paddingRight="8dp"
+        android:paddingTop="4dp"
+        android:text="@string/str_invalid"
+        android:textColor="@color/selector_cancel_text_color"
+        android:visibility="gone" />
 
 </RelativeLayout>

+ 16 - 15
app_modular/appworks/src/main/res/layout/layout_list_public_inquiry.xml

@@ -5,6 +5,7 @@
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
+    android:background="@drawable/selector_b2b_list_item_bg"
     android:padding="12dp">
 
     <LinearLayout
@@ -47,8 +48,8 @@
                 android:layout_width="0dp"
                 android:layout_height="wrap_content"
                 android:layout_weight="1"
-                android:textSize="14sp"
-                android:text="@string/str_product_name" />
+                android:text="@string/str_product_name"
+                android:textSize="14sp" />
 
             <TextView
                 android:id="@+id/list_public_inquiry_product_name_tv"
@@ -72,8 +73,8 @@
                 android:layout_width="0dp"
                 android:layout_height="wrap_content"
                 android:layout_weight="1"
-                android:textSize="14sp"
-                android:text="@string/str_product_model" />
+                android:text="@string/str_product_model"
+                android:textSize="14sp" />
 
             <TextView
                 android:id="@+id/list_public_inquiry_product_model_tv"
@@ -98,8 +99,8 @@
                 android:layout_width="0dp"
                 android:layout_height="wrap_content"
                 android:layout_weight="1"
-                android:textSize="14sp"
-                android:text="@string/str_product_specification" />
+                android:text="@string/str_product_specification"
+                android:textSize="14sp" />
 
             <TextView
                 android:id="@+id/list_public_inquiry_product_specification_tv"
@@ -124,8 +125,8 @@
                 android:layout_width="0dp"
                 android:layout_height="wrap_content"
                 android:layout_weight="1"
-                android:textSize="14sp"
-                android:text="@string/str_product_amount" />
+                android:text="@string/str_product_amount"
+                android:textSize="14sp" />
 
             <TextView
                 android:id="@+id/list_public_inquiry_product_amount_tv"
@@ -150,8 +151,8 @@
                 android:layout_width="0dp"
                 android:layout_height="wrap_content"
                 android:layout_weight="1"
-                android:textSize="14sp"
-                android:text="@string/str_product_brand" />
+                android:text="@string/str_product_brand"
+                android:textSize="14sp" />
 
             <TextView
                 android:id="@+id/list_public_inquiry_product_brand_tv"
@@ -175,8 +176,8 @@
                 android:layout_width="0dp"
                 android:layout_height="wrap_content"
                 android:layout_weight="1"
-                android:textSize="14sp"
-                android:text="@string/str_expiry_date" />
+                android:text="@string/str_expiry_date"
+                android:textSize="14sp" />
 
             <TextView
                 android:id="@+id/list_public_inquiry_expiry_date_tv"
@@ -198,10 +199,10 @@
         android:layout_alignParentBottom="true"
         android:layout_alignParentRight="true"
         android:background="@drawable/selector_cancel_bg"
-        android:paddingTop="4dp"
         android:paddingBottom="4dp"
         android:paddingLeft="8dp"
         android:paddingRight="8dp"
+        android:paddingTop="4dp"
         android:text="@string/str_offer_quotation"
         android:textColor="@color/selector_cancel_text_color" />
 
@@ -212,10 +213,10 @@
         android:layout_alignParentBottom="true"
         android:layout_alignParentRight="true"
         android:background="@drawable/selector_cancel_bg"
-        android:paddingTop="4dp"
         android:paddingBottom="4dp"
         android:paddingLeft="8dp"
         android:paddingRight="8dp"
+        android:paddingTop="4dp"
         android:text="@string/str_expired"
         android:textColor="@color/selector_cancel_text_color" />
 
@@ -226,10 +227,10 @@
         android:layout_alignParentBottom="true"
         android:layout_alignParentRight="true"
         android:background="@drawable/selector_cancel_bg"
-        android:paddingTop="4dp"
         android:paddingBottom="4dp"
         android:paddingLeft="8dp"
         android:paddingRight="8dp"
+        android:paddingTop="4dp"
         android:text="@string/str_quoted_price"
         android:textColor="@color/selector_cancel_text_color" />
 

+ 5 - 1
app_modular/appworks/src/main/res/layout/layout_list_purchase_order.xml

@@ -5,7 +5,8 @@
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:padding="12dp">
+    android:padding="12dp"
+    android:background="@drawable/selector_b2b_list_item_bg">
 
     <LinearLayout
         android:layout_width="match_parent"
@@ -124,6 +125,7 @@
         android:paddingLeft="8dp"
         android:paddingRight="8dp"
         android:text="@string/str_wait_for_reply"
+        android:visibility="gone"
         android:textColor="@color/selector_cancel_text_color" />
 
     <TextView
@@ -138,6 +140,7 @@
         android:paddingLeft="8dp"
         android:paddingRight="8dp"
         android:text="@string/str_have_replied"
+        android:visibility="gone"
         android:textColor="@color/selector_cancel_text_color" />
 
     <TextView
@@ -152,5 +155,6 @@
         android:paddingLeft="8dp"
         android:paddingRight="8dp"
         android:text="@string/str_case_closed"
+        android:visibility="gone"
         android:textColor="@color/selector_cancel_text_color" />
 </RelativeLayout>

+ 83 - 21
app_modular/appworks/src/main/res/layout/layout_list_subsection_quotation.xml

@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-              xmlns:whatever="http://schemas.android.com/apk/res-auto"
-              android:layout_width="match_parent"
-              android:layout_height="wrap_content"
-              android:layout_marginLeft="12dp"
-              android:layout_marginRight="12dp"
-              android:orientation="vertical"
-    >
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:whatever="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:layout_marginLeft="12dp"
+    android:layout_marginRight="12dp"
+    android:orientation="vertical">
 
     <LinearLayout
         android:layout_width="match_parent"
@@ -18,10 +18,11 @@
             style="@style/expense_table_v_1dp" />
 
         <TextView
+            android:id="@+id/list_subsection_quotation_num_tv"
             android:layout_width="0dp"
             android:layout_height="wrap_content"
             android:layout_weight="2"
-            android:paddingLeft="10dp"
+            android:gravity="center"
             android:textColor="@color/text_main" />
 
         <View
@@ -36,30 +37,91 @@
             android:text=">="
             android:textColor="@color/text_main" />
 
-        <EditText
+        <FrameLayout
             android:layout_width="0dp"
             android:layout_height="wrap_content"
-            android:layout_weight="3"
-            android:background="@null"
+            android:layout_weight="3">
+
+            <EditText
+                android:id="@+id/list_subsection_quotation_amount_et"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:background="@null"
+                android:inputType="numberDecimal"
+                android:paddingLeft="6dp"
+                android:singleLine="true"
+                android:textColor="@color/text_main"
+                android:textSize="14sp"
+                android:visibility="gone" />
+
+            <TextView
+                android:id="@+id/list_subsection_quotation_amount_tv"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:background="@null"
+                android:ellipsize="end"
+                android:paddingLeft="6dp"
+                android:singleLine="true"
+                android:textColor="@color/text_main"
+                android:textSize="14sp"
+                android:visibility="gone" />
+        </FrameLayout>
+
+        <View
+            style="@style/expense_table_v_1dp" />
+
+        <TextView
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:gravity="right"
             android:paddingLeft="10dp"
-            android:textColor="@color/text_main"
-            android:textSize="14sp" />
+            android:text="¥"
+            android:textColor="@color/text_main" />
+
+        <FrameLayout
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_weight="3">
+
+            <EditText
+                android:id="@+id/list_subsection_quotation_price_et"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:background="@null"
+                android:inputType="numberDecimal"
+                android:paddingLeft="6dp"
+                android:singleLine="true"
+                android:textColor="@color/text_main"
+                android:textSize="14sp"
+                android:visibility="gone" />
+
+            <TextView
+                android:id="@+id/list_subsection_quotation_price_tv"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:background="@null"
+                android:ellipsize="end"
+                android:inputType="numberDecimal"
+                android:paddingLeft="6dp"
+                android:singleLine="true"
+                android:textColor="@color/text_main"
+                android:textSize="14sp"
+                android:visibility="gone" />
+        </FrameLayout>
 
         <View
             style="@style/expense_table_v_1dp" />
 
         <ImageView
-            android:id="@+id/details_delete_im"
+            android:id="@+id/list_subsection_quotation_delete_iv"
             android:layout_width="0dp"
             android:layout_height="20dp"
-            android:layout_gravity="center_vertical"
-            android:layout_weight="1"
-            android:paddingLeft="10dp"
-            android:src="@drawable/delete" />
+            android:layout_weight="2"
+            android:src="@drawable/ic_b2b_delete" />
 
         <View
-            style="@style/expense_table_v_1dp"
-            />
+            style="@style/expense_table_v_1dp" />
     </LinearLayout>
 
     <View

+ 6 - 0
app_modular/appworks/src/main/res/values-en/strings.xml

@@ -84,4 +84,10 @@
     <string name="select_one_company_log_in">请选择其中一个企业登录</string>
     <string name="str_inquiry_information">询价信息</string>
     <string name="str_material_information">物料信息</string>
+    <string name="str_divisions_count">段数</string>
+    <string name="str_segments_amount">分段数量</string>
+    <string name="str_segments_price">分段单价</string>
+    <string name="str_quote_price">报价</string>
+    <string name="str_quotation_unadopted">报价未采纳</string>
+    <string name="str_invalid">已失效</string>
 </resources>

+ 6 - 0
app_modular/appworks/src/main/res/values-zh-rCN/strings.xml

@@ -83,4 +83,10 @@
     <string name="select_one_company_log_in">请选择其中一个企业登录</string>
     <string name="str_inquiry_information">询价信息</string>
     <string name="str_material_information">物料信息</string>
+    <string name="str_divisions_count">段数</string>
+    <string name="str_segments_amount">分段数量</string>
+    <string name="str_segments_price">分段单价</string>
+    <string name="str_quote_price">报价</string>
+    <string name="str_quotation_unadopted">报价未采纳</string>
+    <string name="str_invalid">已失效</string>
 </resources>

+ 6 - 0
app_modular/appworks/src/main/res/values-zh-rTW/strings.xml

@@ -83,4 +83,10 @@
     <string name="select_one_company_log_in">请选择其中一个企业登录</string>
     <string name="str_inquiry_information">询价信息</string>
     <string name="str_material_information">物料信息</string>
+    <string name="str_divisions_count">段数</string>
+    <string name="str_segments_amount">分段数量</string>
+    <string name="str_segments_price">分段单价</string>
+    <string name="str_quote_price">报价</string>
+    <string name="str_quotation_unadopted">报价未采纳</string>
+    <string name="str_invalid">已失效</string>
 </resources>

+ 6 - 0
app_modular/appworks/src/main/res/values/strings.xml

@@ -115,6 +115,12 @@
     <string name="select_one_company_log_in">请选择其中一个企业登录</string>
     <string name="str_inquiry_information">询价信息</string>
     <string name="str_material_information">物料信息</string>
+    <string name="str_divisions_count">段数</string>
+    <string name="str_segments_amount">分段数量</string>
+    <string name="str_segments_price">分段单价</string>
+    <string name="str_quote_price">报价</string>
+    <string name="str_quotation_unadopted">报价未采纳</string>
+    <string name="str_invalid">已失效</string>
 
 
 </resources>