Przeglądaj źródła

提交分类: 代码备份;
提交内容:
当前版本: 测试版本6.1.1
是否冲突: 否

raomeng 8 lat temu
rodzic
commit
ba7861ae15
94 zmienionych plików z 3837 dodań i 26 usunięć
  1. 2 2
      WeiChat/build.gradle
  2. 1 1
      WeiChat/src/main/res/layout/activity_subscribe_manage.xml
  3. 6 0
      WeiChat/src/main/res/values/styles.xml
  4. 3 3
      WeiChat/version.properties
  5. 9 0
      app_core/common/src/main/assets/work_menu.json
  6. 5 0
      app_core/common/src/main/java/com/core/app/Constants.java
  7. 6 2
      app_core/common/src/main/java/com/core/base/fragment/BaseMVPFragment.java
  8. 319 0
      app_core/common/src/main/java/com/core/widget/LoadingLayout.java
  9. 14 5
      app_core/common/src/main/java/com/core/widget/NoSlideViewpager.java
  10. 5 0
      app_core/common/src/main/res/drawable/_loading_layout_button.xml
  11. 15 0
      app_core/common/src/main/res/drawable/selector_b2b_business_tab.xml
  12. 28 0
      app_core/common/src/main/res/layout/_loading_layout_empty.xml
  13. 42 0
      app_core/common/src/main/res/layout/_loading_layout_error.xml
  14. 25 0
      app_core/common/src/main/res/layout/_loading_layout_loading.xml
  15. 1 1
      app_core/common/src/main/res/layout/activity_subscribe_manage.xml
  16. 5 1
      app_core/common/src/main/res/values/colors.xml
  17. 47 0
      app_core/common/src/main/res/values/styles.xml
  18. 68 0
      app_core/common/src/main/res/values/values-loading-layout.xml
  19. 3 6
      app_core/network/build.gradle
  20. 1 1
      app_modular/appmessages/src/main/java/com/modular/appmessages/activity/SubcribeManageActivity.java
  21. 0 1
      app_modular/appmessages/src/main/java/com/modular/appmessages/fragment/BaseFragment.java
  22. 31 1
      app_modular/appworks/src/main/AndroidManifest.xml
  23. 121 0
      app_modular/appworks/src/main/java/com/uas/appworks/activity/B2BBusinessLoginActivity.java
  24. 240 0
      app_modular/appworks/src/main/java/com/uas/appworks/activity/B2BBusinessMainActivity.java
  25. 49 0
      app_modular/appworks/src/main/java/com/uas/appworks/activity/CustomerInquiryDetailActivity.java
  26. 125 0
      app_modular/appworks/src/main/java/com/uas/appworks/activity/CustomerInquiryListActivity.java
  27. 61 0
      app_modular/appworks/src/main/java/com/uas/appworks/activity/PublicInquiryDetailActivity.java
  28. 120 0
      app_modular/appworks/src/main/java/com/uas/appworks/activity/PublicInquiryListActivity.java
  29. 216 0
      app_modular/appworks/src/main/java/com/uas/appworks/activity/PurchaseOrderListActivity.java
  30. 76 0
      app_modular/appworks/src/main/java/com/uas/appworks/adapter/B2BAccountAdapter.java
  31. 59 0
      app_modular/appworks/src/main/java/com/uas/appworks/adapter/B2BBusinessCompanyAdapter.java
  32. 59 0
      app_modular/appworks/src/main/java/com/uas/appworks/adapter/B2BDetailListAdapter.java
  33. 153 0
      app_modular/appworks/src/main/java/com/uas/appworks/adapter/B2bBusinessListAdapter.java
  34. 42 0
      app_modular/appworks/src/main/java/com/uas/appworks/adapter/TabViewpagerAdapter.java
  35. 95 0
      app_modular/appworks/src/main/java/com/uas/appworks/fragment/B2BBusinessListFragment1.java
  36. 65 0
      app_modular/appworks/src/main/java/com/uas/appworks/fragment/B2BBusinessListFragment2.java
  37. 65 0
      app_modular/appworks/src/main/java/com/uas/appworks/fragment/B2BBusinessListFragment3.java
  38. 66 0
      app_modular/appworks/src/main/java/com/uas/appworks/fragment/B2BBusinessListFragment4.java
  39. 66 0
      app_modular/appworks/src/main/java/com/uas/appworks/fragment/B2BBusinessListFragment5.java
  40. 18 0
      app_modular/appworks/src/main/java/com/uas/appworks/model/WorkPlatModel.java
  41. 135 0
      app_modular/appworks/src/main/java/com/uas/appworks/model/bean/B2BBusinessListBean.java
  42. 65 0
      app_modular/appworks/src/main/java/com/uas/appworks/model/bean/B2BCompanyBean.java
  43. 28 0
      app_modular/appworks/src/main/java/com/uas/appworks/model/bean/B2BDetailListBean.java
  44. BIN
      app_modular/appworks/src/main/res/drawable-hdpi/ic_b2b_add.png
  45. BIN
      app_modular/appworks/src/main/res/drawable-hdpi/ic_b2b_change_account_checked.png
  46. BIN
      app_modular/appworks/src/main/res/drawable-hdpi/ic_b2b_change_account_notice.png
  47. BIN
      app_modular/appworks/src/main/res/drawable-hdpi/ic_b2b_change_account_unchecked.png
  48. BIN
      app_modular/appworks/src/main/res/drawable-hdpi/ic_b2b_current_company.png
  49. BIN
      app_modular/appworks/src/main/res/drawable-hdpi/ic_b2b_customer_inquiry.png
  50. BIN
      app_modular/appworks/src/main/res/drawable-hdpi/ic_b2b_delete.png
  51. BIN
      app_modular/appworks/src/main/res/drawable-hdpi/ic_b2b_login_notice.png
  52. BIN
      app_modular/appworks/src/main/res/drawable-hdpi/ic_b2b_public_inquiry.png
  53. BIN
      app_modular/appworks/src/main/res/drawable-hdpi/ic_b2b_purchase_order.png
  54. BIN
      app_modular/appworks/src/main/res/drawable-xhdpi/ic_b2b_add.png
  55. BIN
      app_modular/appworks/src/main/res/drawable-xhdpi/ic_b2b_change_account_checked.png
  56. BIN
      app_modular/appworks/src/main/res/drawable-xhdpi/ic_b2b_change_account_notice.png
  57. BIN
      app_modular/appworks/src/main/res/drawable-xhdpi/ic_b2b_change_account_unchecked.png
  58. BIN
      app_modular/appworks/src/main/res/drawable-xhdpi/ic_b2b_current_company.png
  59. BIN
      app_modular/appworks/src/main/res/drawable-xhdpi/ic_b2b_customer_inquiry.png
  60. BIN
      app_modular/appworks/src/main/res/drawable-xhdpi/ic_b2b_delete.png
  61. BIN
      app_modular/appworks/src/main/res/drawable-xhdpi/ic_b2b_login_notice.png
  62. BIN
      app_modular/appworks/src/main/res/drawable-xhdpi/ic_b2b_public_inquiry.png
  63. BIN
      app_modular/appworks/src/main/res/drawable-xhdpi/ic_b2b_purchase_order.png
  64. BIN
      app_modular/appworks/src/main/res/drawable-xxhdpi/ic_b2b_add.png
  65. BIN
      app_modular/appworks/src/main/res/drawable-xxhdpi/ic_b2b_change_account_checked.png
  66. BIN
      app_modular/appworks/src/main/res/drawable-xxhdpi/ic_b2b_change_account_notice.png
  67. BIN
      app_modular/appworks/src/main/res/drawable-xxhdpi/ic_b2b_change_account_unchecked.png
  68. BIN
      app_modular/appworks/src/main/res/drawable-xxhdpi/ic_b2b_current_company.png
  69. BIN
      app_modular/appworks/src/main/res/drawable-xxhdpi/ic_b2b_customer_inquiry.png
  70. BIN
      app_modular/appworks/src/main/res/drawable-xxhdpi/ic_b2b_delete.png
  71. BIN
      app_modular/appworks/src/main/res/drawable-xxhdpi/ic_b2b_login_notice.png
  72. BIN
      app_modular/appworks/src/main/res/drawable-xxhdpi/ic_b2b_public_inquiry.png
  73. BIN
      app_modular/appworks/src/main/res/drawable-xxhdpi/ic_b2b_purchase_order.png
  74. 8 0
      app_modular/appworks/src/main/res/drawable/selector_b2b_account.xml
  75. 6 0
      app_modular/appworks/src/main/res/drawable/shape_b2b_change_account.xml
  76. 32 0
      app_modular/appworks/src/main/res/layout/action_b2b_company.xml
  77. 44 0
      app_modular/appworks/src/main/res/layout/activity_b2b_business_login.xml
  78. 221 0
      app_modular/appworks/src/main/res/layout/activity_b2b_business_main.xml
  79. 46 0
      app_modular/appworks/src/main/res/layout/activity_customer_inquiry_detail.xml
  80. 45 0
      app_modular/appworks/src/main/res/layout/activity_public_inquiry_detail.xml
  81. 48 0
      app_modular/appworks/src/main/res/layout/activity_tab_viewpager.xml
  82. 9 0
      app_modular/appworks/src/main/res/layout/fragment_b2b_list.xml
  83. 15 0
      app_modular/appworks/src/main/res/layout/layout_list_b2b_account.xml
  84. 19 0
      app_modular/appworks/src/main/res/layout/layout_list_b2b_company.xml
  85. 29 0
      app_modular/appworks/src/main/res/layout/layout_list_b2b_detail.xml
  86. 158 0
      app_modular/appworks/src/main/res/layout/layout_list_customer_inquiry.xml
  87. 236 0
      app_modular/appworks/src/main/res/layout/layout_list_public_inquiry.xml
  88. 156 0
      app_modular/appworks/src/main/res/layout/layout_list_purchase_order.xml
  89. 83 0
      app_modular/appworks/src/main/res/layout/pop_b2b_change_account.xml
  90. 29 0
      app_modular/appworks/src/main/res/values-en/strings.xml
  91. 29 0
      app_modular/appworks/src/main/res/values-zh-rCN/strings.xml
  92. 29 0
      app_modular/appworks/src/main/res/values-zh-rTW/strings.xml
  93. 29 0
      app_modular/appworks/src/main/res/values/strings.xml
  94. 6 2
      version.gradle

+ 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 {

+ 1 - 1
WeiChat/src/main/res/layout/activity_subscribe_manage.xml

@@ -14,7 +14,7 @@
         android:layout_width="match_parent"
         android:layout_height="3dp"/>
 
-    <com.modular.appmessages.ui.NoSlideViewpager
+    <com.core.widget.NoSlideViewpager
         android:id="@+id/subscribe_manage_vp"
         android:layout_width="match_parent"
         android:layout_height="match_parent"/>

+ 6 - 0
WeiChat/src/main/res/values/styles.xml

@@ -35,6 +35,7 @@
         <item name="homeAsUpIndicator">@drawable/actionbar_up_indicator</item>
         <!-- This disables the black preview screen -->
         <item name="android:windowDisablePreview">true</item>
+        <item name="styleLoadingLayout">@style/LoadingLayoutStyle</item>
     </style>
 
 
@@ -47,6 +48,11 @@
 
     </style>
 
+    <style name="LoadingLayoutStyle" parent="LoadingLayout.Style">
+        <item name="llEmptyImage">@drawable/ic_empty</item>
+        <item name="llErrorImage">@drawable/ic_error</item>
+    </style>
+
     <!-- Dialog Style -->
     <style name="IMTheme.DialogStyle" parent="Theme.AppCompat.Dialog">
         <item name="android:windowFrame">@null</item>

+ 3 - 3
WeiChat/version.properties

@@ -1,5 +1,5 @@
-#Thu Jan 11 18:13:05 CST 2018
-debugName=407
+#Tue Jan 16 16:32:48 CST 2018
+debugName=466
 versionName=624
-debugCode=407
+debugCode=466
 versionCode=163

+ 9 - 0
app_core/common/src/main/assets/work_menu.json

@@ -302,6 +302,15 @@
         "menuUrl": "",
         "caller": "",
         "isHide": false
+      },
+      {
+        "isLocalMenu": true,
+        "menuName": "b2b商务",
+        "menuIcon": "",
+        "menuActivity": "com.modular.work.B2BBusinessLoginActivity",
+        "menuUrl": "",
+        "caller": "",
+        "isHide": false
       }
     ]
   }

+ 5 - 0
app_core/common/src/main/java/com/core/app/Constants.java

@@ -468,5 +468,10 @@ public class Constants {
          */
         int WEIXIN_PAY = 101;
         int API_PAY = 102;
+
+        /**
+         * B2B商务
+         */
+        String B2B_COMPANY_BEAN = "b2b_company_bean";
     }
 }

+ 6 - 2
app_core/common/src/main/java/com/core/base/fragment/BaseMVPFragment.java

@@ -14,6 +14,7 @@ import com.core.app.R;
 import com.core.base.presenter.BasePresenter;
 import com.core.base.view.BaseView;
 import com.core.utils.ToastUtil;
+import com.core.widget.CustomProgressDialog;
 
 
 /**
@@ -37,6 +38,8 @@ public abstract class BaseMVPFragment<T extends BasePresenter> extends Fragment
      */
     private View mRootView;
 
+    public CustomProgressDialog progressDialog;
+
     @Override
     public void onAttach(Context context) {
         super.onAttach(context);
@@ -76,6 +79,7 @@ public abstract class BaseMVPFragment<T extends BasePresenter> extends Fragment
         if (mPresenter != null) {
             mPresenter.attachView(this);
         }
+        progressDialog = CustomProgressDialog.createDialog(mContext);
         initViews();
         initEvents();
         initDatas();
@@ -217,6 +221,8 @@ public abstract class BaseMVPFragment<T extends BasePresenter> extends Fragment
         getActivity().overridePendingTransition(R.anim.anim_activity_in, R.anim.anim_activity_out);
     }
 
+    protected abstract int getLayout();
+
     /**
      * 创建presenter
      *
@@ -224,8 +230,6 @@ public abstract class BaseMVPFragment<T extends BasePresenter> extends Fragment
      */
     protected abstract T initPresenter();
 
-    protected abstract int getLayout();
-
     protected abstract void initViews();
 
     protected abstract void initEvents();

+ 319 - 0
app_core/common/src/main/java/com/core/widget/LoadingLayout.java

@@ -0,0 +1,319 @@
+package com.core.widget;
+
+import android.app.Activity;
+import android.app.Fragment;
+import android.content.Context;
+import android.content.res.TypedArray;
+import android.graphics.drawable.Drawable;
+import android.support.annotation.DrawableRes;
+import android.support.annotation.LayoutRes;
+import android.util.AttributeSet;
+import android.util.TypedValue;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.FrameLayout;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import com.core.app.R;
+
+import java.util.HashMap;
+import java.util.Map;
+
+
+public class LoadingLayout extends FrameLayout {
+    public interface OnInflateListener {
+        void onInflate(View inflated);
+    }
+
+    public static LoadingLayout wrap(Activity activity) {
+        return wrap(((ViewGroup)activity.findViewById(android.R.id.content)).getChildAt(0));
+    }
+    public static LoadingLayout wrap(Fragment fragment) {
+        return wrap(fragment.getView());
+    }
+    public static LoadingLayout wrap(View view) {
+        if (view == null) {
+            throw new RuntimeException("content view can not be null");
+        }
+        ViewGroup parent = (ViewGroup)view.getParent();
+        if (view == null) {
+            throw new RuntimeException("parent view can not be null");
+        }
+        ViewGroup.LayoutParams lp = view.getLayoutParams();
+        int index = parent.indexOfChild(view);
+        parent.removeView(view);
+
+        LoadingLayout layout = new LoadingLayout(view.getContext());
+        parent.addView(layout, index, lp);
+        layout.addView(view);
+        layout.setContentView(view);
+        return layout;
+    }
+
+    int mEmptyImage;
+    CharSequence mEmptyText;
+
+    int mErrorImage;
+    CharSequence mErrorText, mRetryText;
+    OnClickListener mRetryButtonClickListener = new OnClickListener() {
+        @Override
+        public void onClick(View v) {
+            if (mRetryListener != null) {
+                mRetryListener.onClick(v);
+            }
+        }
+    };
+    OnClickListener mRetryListener;
+
+    OnInflateListener mOnEmptyInflateListener;
+    OnInflateListener mOnErrorInflateListener;
+
+    int mTextColor, mTextSize;
+    int mButtonTextColor, mButtonTextSize;
+    Drawable mButtonBackground;
+    int mEmptyResId = NO_ID, mLoadingResId = NO_ID, mErrorResId = NO_ID;
+    int mContentId = NO_ID;
+
+    Map<Integer, View> mLayouts = new HashMap<>();
+
+
+    public LoadingLayout(Context context) {
+        this(context, null, R.attr.styleLoadingLayout);
+    }
+
+    public LoadingLayout(Context context, AttributeSet attrs) {
+        this(context, attrs, R.attr.styleLoadingLayout);
+    }
+
+    public LoadingLayout(Context context, AttributeSet attrs, int defStyleAttr) {
+        super(context, attrs, defStyleAttr);
+
+        mInflater = LayoutInflater.from(context);
+        TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.LoadingLayout, defStyleAttr, R.style.LoadingLayout_Style);
+        mEmptyImage = a.getResourceId(R.styleable.LoadingLayout_llEmptyImage, NO_ID);
+        mEmptyText = a.getString(R.styleable.LoadingLayout_llEmptyText);
+
+        mErrorImage = a.getResourceId(R.styleable.LoadingLayout_llErrorImage, NO_ID);
+        mErrorText = a.getString(R.styleable.LoadingLayout_llErrorText);
+        mRetryText = a.getString(R.styleable.LoadingLayout_llRetryText);
+
+        mTextColor = a.getColor(R.styleable.LoadingLayout_llTextColor, 0xff999999);
+        mTextSize = a.getDimensionPixelSize(R.styleable.LoadingLayout_llTextSize, dp2px(16));
+
+        mButtonTextColor = a.getColor(R.styleable.LoadingLayout_llButtonTextColor, 0xff999999);
+        mButtonTextSize = a.getDimensionPixelSize(R.styleable.LoadingLayout_llButtonTextSize, dp2px(16));
+        mButtonBackground = a.getDrawable(R.styleable.LoadingLayout_llButtonBackground);
+
+        mEmptyResId = a.getResourceId(R.styleable.LoadingLayout_llEmptyResId, R.layout._loading_layout_empty);
+        mLoadingResId = a.getResourceId(R.styleable.LoadingLayout_llLoadingResId, R.layout._loading_layout_loading);
+        mErrorResId = a.getResourceId(R.styleable.LoadingLayout_llErrorResId, R.layout._loading_layout_error);
+        a.recycle();
+    }
+
+    int dp2px(float dp) {
+        return (int) (getResources().getDisplayMetrics().density * dp);
+    }
+
+
+    LayoutInflater mInflater;
+    @Override
+    protected void onFinishInflate() {
+        super.onFinishInflate();
+        if (getChildCount() == 0) {
+            return;
+        }
+        if (getChildCount() > 1) {
+            removeViews(1, getChildCount() - 1);
+        }
+        View view = getChildAt(0);
+        setContentView(view);
+        showLoading();
+    }
+
+    private void setContentView(View view) {
+        mContentId = view.getId();
+        mLayouts.put(mContentId, view);
+    }
+
+    public LoadingLayout setLoading(@LayoutRes int id) {
+        if (mLoadingResId != id) {
+            remove(mLoadingResId);
+            mLoadingResId = id;
+        }
+        return this;
+    }
+    public LoadingLayout setEmpty(@LayoutRes int id) {
+        if (mEmptyResId != id) {
+            remove(mEmptyResId);
+            mEmptyResId = id;
+        }
+        return this;
+    }
+    public LoadingLayout setOnEmptyInflateListener(OnInflateListener listener) {
+        mOnEmptyInflateListener = listener;
+        if (mOnEmptyInflateListener != null && mLayouts.containsKey(mEmptyResId)) {
+            listener.onInflate(mLayouts.get(mEmptyResId));
+        }
+        return this;
+    }
+    public LoadingLayout setOnErrorInflateListener(OnInflateListener listener) {
+        mOnErrorInflateListener = listener;
+        if (mOnErrorInflateListener != null && mLayouts.containsKey(mErrorResId)) {
+            listener.onInflate(mLayouts.get(mErrorResId));
+        }
+        return this;
+    }
+
+    public LoadingLayout setEmptyImage(@DrawableRes int resId) {
+        mEmptyImage = resId;
+        image(mEmptyResId, R.id.empty_image, mEmptyImage);
+        return this;
+    }
+    public LoadingLayout setEmptyText(String value) {
+        mEmptyText = value;
+        text(mEmptyResId, R.id.empty_text, mEmptyText);
+        return this;
+    }
+    public LoadingLayout setErrorImage(@DrawableRes int resId) {
+        mErrorImage = resId;
+        image(mErrorResId, R.id.error_image, mErrorImage);
+        return this;
+    }
+    public LoadingLayout setErrorText(String value) {
+        mErrorText = value;
+        text(mErrorResId, R.id.error_text, mErrorText);
+        return this;
+    }
+
+    public LoadingLayout setRetryText(String text) {
+        mRetryText = text;
+        text(mErrorResId, R.id.retry_button, mRetryText);
+        return this;
+    }
+
+    public LoadingLayout setRetryListener(OnClickListener listener) {
+        mRetryListener = listener;
+        return this;
+    }
+
+
+//    public LoadingLayout setTextColor(@ColorInt int color) {
+//        mTextColor = color;
+//        return this;
+//    }
+//    public LoadingLayout setTextSize(@ColorInt int dp) {
+//        mTextColor = dp2px(dp);
+//        return this;
+//    }
+//    public LoadingLayout setButtonTextColor(@ColorInt int color) {
+//        mButtonTextColor = color;
+//        return this;
+//    }
+//    public LoadingLayout setButtonTextSize(@ColorInt int dp) {
+//        mButtonTextColor = dp2px(dp);
+//        return this;
+//    }
+//    public LoadingLayout setButtonBackground(Drawable drawable) {
+//        mButtonBackground = drawable;
+//        return this;
+//    }
+
+    public void showLoading() {
+        show(mLoadingResId);
+    }
+
+    public void showEmpty() {
+        show(mEmptyResId);
+    }
+
+    public void showError() {
+        show(mErrorResId);
+    }
+
+    public void showContent() {
+        show(mContentId);
+    }
+
+    private void show(int layoutId) {
+        for (View view : mLayouts.values()) {
+            view.setVisibility(GONE);
+        }
+        layout(layoutId).setVisibility(VISIBLE);
+    }
+
+    private void remove(int layoutId) {
+        if (mLayouts.containsKey(layoutId)) {
+            View vg = mLayouts.remove(layoutId);
+            removeView(vg);
+        }
+    }
+
+    private View layout(int layoutId) {
+        if (mLayouts.containsKey(layoutId)) {
+            return mLayouts.get(layoutId);
+        }
+        View layout = mInflater.inflate(layoutId, this, false);
+        layout.setVisibility(GONE);
+        addView(layout);
+        mLayouts.put(layoutId, layout);
+
+        if (layoutId == mEmptyResId) {
+            ImageView img = (ImageView) layout.findViewById(R.id.empty_image);
+            if (img != null) {
+                img.setImageResource(mEmptyImage);
+            }
+            TextView view = (TextView) layout.findViewById(R.id.empty_text);
+            if (view != null) {
+                view.setText(mEmptyText);
+                view.setTextColor(mTextColor);
+                view.setTextSize(TypedValue.COMPLEX_UNIT_PX, mTextSize);
+            }
+            if (mOnEmptyInflateListener != null) {
+                mOnEmptyInflateListener.onInflate(layout);
+            }
+        } else if (layoutId == mErrorResId) {
+            ImageView img = (ImageView) layout.findViewById(R.id.error_image);
+            if (img != null) {
+                img.setImageResource(mErrorImage);
+            }
+            TextView txt = (TextView) layout.findViewById(R.id.error_text);
+            if (txt != null) {
+                txt.setText(mErrorText);
+                txt.setTextColor(mTextColor);
+                txt.setTextSize(TypedValue.COMPLEX_UNIT_PX, mTextSize);
+            }
+            TextView btn = (TextView) layout.findViewById(R.id.retry_button);
+            if (btn != null) {
+                btn.setText(mRetryText);
+                btn.setTextColor(mButtonTextColor);
+                btn.setTextSize(TypedValue.COMPLEX_UNIT_PX, mButtonTextSize);
+                btn.setBackground(mButtonBackground);
+                btn.setOnClickListener(mRetryButtonClickListener);
+            }
+            if (mOnErrorInflateListener != null) {
+                mOnErrorInflateListener.onInflate(layout);
+            }
+        }
+        return layout;
+    }
+
+    private void text(int layoutId, int ctrlId, CharSequence value) {
+        if (mLayouts.containsKey(layoutId)) {
+            TextView view = (TextView) mLayouts.get(layoutId).findViewById(ctrlId);
+            if (view != null) {
+                view.setText(value);
+            }
+        }
+    }
+
+    private void image(int layoutId, int ctrlId, int resId) {
+        if (mLayouts.containsKey(layoutId)) {
+            ImageView view = (ImageView) mLayouts.get(layoutId).findViewById(ctrlId);
+            if (view != null) {
+                view.setImageResource(resId);
+            }
+        }
+    }
+}

+ 14 - 5
app_modular/appmessages/src/main/java/com/modular/appmessages/ui/NoSlideViewpager.java → app_core/common/src/main/java/com/core/widget/NoSlideViewpager.java

@@ -1,4 +1,4 @@
-package com.modular.appmessages.ui;
+package com.core.widget;
 
 import android.content.Context;
 import android.support.v4.view.ViewPager;
@@ -20,11 +20,20 @@ public class NoSlideViewpager extends ViewPager {
         super(context, attrs);
     }
 
+    public boolean isNoSlide() {
+        return noSlide;
+    }
+
+    public void setNoSlide(boolean noSlide) {
+        this.noSlide = noSlide;
+    }
+
     @Override
     public boolean onTouchEvent(MotionEvent ev) {
-        if (noSlide){
+        if (noSlide) {
+
             return false;
-        }else {
+        } else {
             return super.onTouchEvent(ev);
 
         }
@@ -32,9 +41,9 @@ public class NoSlideViewpager extends ViewPager {
 
     @Override
     public boolean onInterceptTouchEvent(MotionEvent ev) {
-        if (noSlide){
+        if (noSlide) {
             return false;
-        }else {
+        } else {
             return super.onInterceptTouchEvent(ev);
 
         }

+ 5 - 0
app_core/common/src/main/res/drawable/_loading_layout_button.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <corners android:radius="5dp" />
+    <stroke android:width="1px" android:color="#CCCCCC" />
+</shape>

+ 15 - 0
app_core/common/src/main/res/drawable/selector_b2b_business_tab.xml

@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <!-- Non focused states -->
+    <item android:state_focused="false" android:state_pressed="false" android:state_selected="false" android:color="@color/black"/>
+    <item android:state_focused="false" android:state_pressed="false" android:state_selected="true" android:color="@color/b2b_tab_selected"/>
+
+    <!-- Focused states -->
+    <item android:state_focused="true" android:state_pressed="false" android:state_selected="false" android:color="@color/black"/>
+    <item android:state_focused="true" android:state_pressed="false" android:state_selected="true" android:color="@color/b2b_tab_selected"/>
+
+    <!-- Pressed -->
+    <item android:state_pressed="true" android:color="@color/black"/>
+
+</selector>

+ 28 - 0
app_core/common/src/main/res/layout/_loading_layout_empty.xml

@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:layout_gravity="center"
+    android:paddingBottom="30dp"
+    android:gravity="center"
+    android:orientation="vertical">
+
+    <ImageView
+        android:id="@id/empty_image"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center"
+        android:adjustViewBounds="true"/>
+
+    <TextView
+        android:id="@id/empty_text"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center"
+        tools:textColor="#999999"
+        tools:textSize="16sp"
+        tools:text="暂无数据"/>
+</LinearLayout>

+ 42 - 0
app_core/common/src/main/res/layout/_loading_layout_error.xml

@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:layout_gravity="center"
+    android:paddingBottom="30dp"
+    android:gravity="center"
+    android:orientation="vertical">
+    <ImageView
+        android:id="@id/error_image"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center"
+        android:adjustViewBounds="true"/>
+
+    <TextView
+        android:id="@id/error_text"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center"
+        android:layout_margin="20dp"
+        tools:text="无网络连接,请检查您的网络..."
+        tools:textColor="#666666"
+        tools:textSize="16sp"/>
+
+    <TextView
+        android:id="@id/retry_button"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center"
+        android:background="@drawable/_loading_layout_button"
+        android:gravity="center"
+        android:minWidth="120dp"
+        android:padding="10dp"
+        tools:text="加载失败,点击重试~~"
+        tools:textColor="#999999"
+        tools:textSize="16sp"/>
+
+</LinearLayout>

+ 25 - 0
app_core/common/src/main/res/layout/_loading_layout_loading.xml

@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:layout_gravity="center"
+    android:gravity="center"
+    android:paddingBottom="30dp"
+    android:orientation="vertical">
+    <ProgressBar
+        android:layout_width="30dp"
+        android:layout_height="30dp"
+        android:layout_gravity="center"
+        android:progress="80"/>
+
+    <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center"
+        android:text="加载中..."
+        android:textColor="#999999"
+        android:textSize="16sp"/>
+</LinearLayout>

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

@@ -14,7 +14,7 @@
         android:layout_width="match_parent"
         android:layout_height="3dp"/>
 
-    <com.xzjmyk.pm.activity.view.NoSlideViewpager
+    <com.core.widget.NoSlideViewpager
         android:id="@+id/subscribe_manage_vp"
         android:layout_width="match_parent"
         android:layout_height="match_parent"/>

+ 5 - 1
app_core/common/src/main/res/values/colors.xml

@@ -338,7 +338,11 @@
     <color name="data_inquiry_gird_menu_color6">#68d2c9</color>
     <color name="data_inquiry_caption_textcolor">#999999</color>
     <color name="data_inquiry_value_textcolor">#333333</color>
-    
+
     <!--服务预约-->
     <color name="blue_seats_num">#2E94DD</color>
+
+    <!--B2B商务-->
+    <color name="b2b_tab_bg">#f2f8fc</color>
+    <color name="b2b_tab_selected">#2F95DD</color>
 </resources>

+ 47 - 0
app_core/common/src/main/res/values/styles.xml

@@ -35,6 +35,7 @@
         <item name="homeAsUpIndicator">@drawable/actionbar_up_indicator</item>
         <!-- This disables the black preview screen -->
         <item name="android:windowDisablePreview">true</item>
+        <item name="styleLoadingLayout">@style/LoadingLayoutStyle</item>
     </style>
 
 
@@ -47,6 +48,12 @@
 
     </style>
 
+
+    <style name="LoadingLayoutStyle" parent="LoadingLayout.Style">
+        <item name="llEmptyImage">@drawable/ic_empty</item>
+        <item name="llErrorImage">@drawable/ic_error</item>
+    </style>
+
     <!-- Dialog Style -->
     <style name="IMTheme.DialogStyle" parent="Theme.AppCompat.Dialog">
         <item name="android:windowFrame">@null</item>
@@ -1043,6 +1050,46 @@
         <item name="fadeDelay">1000</item>-->
     </style>
 
+    <style name="StyledBlueIndicators" parent="@style/AppTheme">
+        <item name="vpiTabPageIndicatorStyle">@style/CustomBlueTabPageIndicator</item>
+        <item name="vpiUnderlinePageIndicatorStyle">@style/CustomBlueUnderlinePageIndicator</item>
+    </style>
+
+    <style name="CustomBlueTabPageIndicator" parent="Widget.TabPageIndicator">
+        <!-- 点击时在不同状态下显示的背景色 -->
+        <!--<item name="android:background">@drawable/vpi__tab_indicator</item>-->
+        <item name="android:background">@color/b2b_tab_bg</item>
+        <!-- 分割线图片设置 -->
+        <item name="android:divider">@drawable/dividing_line</item>
+        <!-- 设置分割线的显示位置,或是不显示 -->
+        <item name="android:showDividers">none</item>
+
+        <item name="android:textAppearance">@style/CustomBlueTabPageIndicator.Text</item>
+        <item name="android:textColor">@drawable/selector_b2b_business_tab</item>
+        <item name="android:textSize">14sp</item>
+        <!--<item name="android:textStyle">bold</item>-->
+        <!--<item name="android:dividerPadding">10dp</item>-->
+        <item name="android:paddingLeft">10dp</item>
+        <item name="android:paddingRight">10dp</item>
+        <item name="android:paddingTop">10dp</item>
+        <item name="android:paddingBottom">10dp</item>
+        <item name="android:fadingEdgeLength">10dp</item>
+        <item name="android:fadingEdge">horizontal</item>
+    </style>
+
+    <style name="CustomBlueTabPageIndicator.Text" parent="android:TextAppearance.Medium">
+        <item name="android:typeface">normal</item>
+        <!--<item name="android:textColor">@color/selector_subscribe_manage</item>-->
+    </style>
+
+    <style name="CustomBlueUnderlinePageIndicator">
+        <item name="selectedColor">@color/b2b_tab_selected</item>
+        <item name="android:background">@color/b2b_tab_bg</item>
+        <!--<item name="android:textColor">@drawable/selector_subscribe_tab</item>-->
+        <!--<item name="fadeLength">1000</item>
+        <item name="fadeDelay">1000</item>-->
+    </style>
+
     <!-- PopupWindow窗口动画 -->
     <style name="MenuAnimationFade">
         <item name="android:windowEnterAnimation">@anim/popup_fade_in</item>

+ 68 - 0
app_core/common/src/main/res/values/values-loading-layout.xml

@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<resources>
+    <item name="empty_image" type="id"/>
+    <item name="empty_text" type="id"/>
+
+    <item name="error_image" type="id"/>
+    <item name="error_text" type="id"/>
+    <item name="retry_button" type="id"/>
+
+    <attr name="styleLoadingLayout" format="reference"/>
+
+    <style name="LoadingLayout">
+    </style>
+
+    <style name="LoadingLayout.Style">
+        <item name="llEmptyResId">@layout/_loading_layout_empty</item>
+        <item name="llLoadingResId">@layout/_loading_layout_loading</item>
+        <item name="llErrorResId">@layout/_loading_layout_error</item>
+
+        <item name="llTextColor">#999999</item>
+        <item name="llTextSize">16sp</item>
+
+        <item name="llButtonTextColor">#999999</item>
+        <item name="llButtonTextSize">16sp</item>
+        <item name="llButtonBackground">@drawable/_loading_layout_button</item>
+
+        <item name="llEmptyImage">@null</item>
+        <item name="llEmptyText">暂无数据</item>
+        <item name="llErrorImage">@null</item>
+        <item name="llErrorText">无网络连接,请检查您的网络...</item>
+        <item name="llRetryText">加载失败,点击重试~~</item>
+    </style>
+
+
+    <declare-styleable name="LoadingLayout">
+        <!-- 空布局资源id -->
+        <attr name="llEmptyResId" format="reference"/>
+        <!-- 加载中布局资源id -->
+        <attr name="llLoadingResId" format="reference"/>
+        <!-- 错误布局资源id -->
+        <attr name="llErrorResId" format="reference"/>
+
+        <!-- 空布局图片 -->
+        <attr name="llEmptyImage" format="reference"/>
+        <!-- 空布局文本 -->
+        <attr name="llEmptyText" format="string"/>
+
+        <!-- 错误布局图片 -->
+        <attr name="llErrorImage" format="reference"/>
+        <!-- 错误布局文本 -->
+        <attr name="llErrorText" format="string"/>
+        <!-- 错误布局重试按钮文本 -->
+        <attr name="llRetryText" format="string"/>
+
+        <!-- 文本颜色 -->
+        <attr name="llTextColor" format="color"/>
+        <!-- 文本尺寸 -->
+        <attr name="llTextSize" format="dimension"/>
+
+        <!-- 按钮文本颜色 -->
+        <attr name="llButtonTextColor" format="color"/>
+        <!-- 按钮文本尺寸 -->
+        <attr name="llButtonTextSize" format="dimension"/>
+        <!-- 按钮背景 -->
+        <attr name="llButtonBackground" format="reference"/>
+    </declare-styleable>
+</resources>

+ 3 - 6
app_core/network/build.gradle

@@ -10,7 +10,7 @@ Properties properties = new Properties()
 properties.load(project.rootProject.file('local.properties').newDataInputStream())
 
 
-def disVersion='1.0.9'//TODO 页面展示版本号
+def disVersion = '1.0.9'//TODO 页面展示版本号
 version = "1.0.9" //TODO 真实发布版本号
 group = "com.alphabet.app" //最终引用形式,如compile 'com.alphabet.app:1.0.0',其中lfilepicker在后面配置
 /********************end upload bintray config******************************************/
@@ -61,10 +61,10 @@ bintray {
         publish = true // 是否是公开项目,公开别人可以引用
 
         version {
-            name =disVersion 
+            name = disVersion
             desc = 'AppBase-NetWork'//描述,自己定义
             released = new Date()
-            vcsTag =disVersion
+            vcsTag = disVersion
             attributes = ['gradle-plugin': 'com.use.less:com.use.less.gradle:gradle-useless-plugin']
         }
     }
@@ -143,9 +143,6 @@ javadoc {
 }
 /********************end upload bintray config******************************************/
 
-
-
-
 /*def siteUrl = 'https://github.com/Arisono/AppModular'      // 项目的主页
 def gitUrl = 'https://github.com/Arisono/AppModular.git'   // Git仓库的url
 group = "com.android.base" // Maven Group ID for the artifact,一般填你唯一的包名

+ 1 - 1
app_modular/appmessages/src/main/java/com/modular/appmessages/activity/SubcribeManageActivity.java

@@ -13,7 +13,7 @@ import com.modular.appmessages.adapter.SubscribeManegeVpAdapter;
 import com.modular.appmessages.fragment.BaseFragment;
 import com.modular.appmessages.fragment.SubscriptionAllFragment;
 import com.modular.appmessages.fragment.SubscriptionMyFragment;
-import com.modular.appmessages.ui.NoSlideViewpager;
+import com.core.widget.NoSlideViewpager;
 import com.viewpagerindicator.TabPageIndicator;
 import com.viewpagerindicator.UnderlinePageIndicator;
 

+ 0 - 1
app_modular/appmessages/src/main/java/com/modular/appmessages/fragment/BaseFragment.java

@@ -13,7 +13,6 @@ import com.modular.appmessages.R;
 
 
 /**
- * BaseFragment 采用工厂模式
  * Created by RaoMeng on 2016/8/19.
  */
 public abstract class BaseFragment extends Fragment {

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

@@ -325,9 +325,10 @@
             </intent-filter>
         </activity>
 
+        <!--设备管理-->
         <activity
             android:name=".CRM.erp.activity.DeviceManageActivity"
-            android:label="@string/title_device_manage" >
+            android:label="@string/title_device_manage">
             <intent-filter>
                 <action android:name="com.modular.work.DeviceManageActivity" />
 
@@ -371,6 +372,35 @@
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
         </activity>
+
+        <!--B2B商务-->
+        <activity android:name=".activity.B2BBusinessMainActivity">
+            <intent-filter>
+                <action android:name="com.modular.work.B2BBusinessMainActivity" />
+
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+        </activity>
+        <activity android:name=".activity.B2BBusinessLoginActivity">
+            <intent-filter>
+                <action android:name="com.modular.work.B2BBusinessLoginActivity" />
+
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+        </activity>
+        <activity
+            android:name=".activity.PublicInquiryListActivity"
+            android:theme="@style/StyledBlueIndicators"
+            android:windowSoftInputMode="adjustPan|stateHidden" />
+        <activity
+            android:name=".activity.CustomerInquiryListActivity"
+            android:theme="@style/StyledBlueIndicators"
+            android:windowSoftInputMode="adjustPan|stateHidden" />
+        <activity
+            android:name=".activity.PurchaseOrderListActivity"
+            android:theme="@style/StyledBlueIndicators"
+            android:windowSoftInputMode="adjustPan|stateHidden" />
+        <activity android:name=".activity.PublicInquiryDetailActivity" />
     </application>
 
 </manifest>

+ 121 - 0
app_modular/appworks/src/main/java/com/uas/appworks/activity/B2BBusinessLoginActivity.java

@@ -0,0 +1,121 @@
+package com.uas.appworks.activity;
+
+import android.content.Intent;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.widget.LinearLayout;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.common.data.JSONUtil;
+import com.core.app.Constants;
+import com.core.base.activity.BaseMVPActivity;
+import com.core.utils.CommonUtil;
+import com.core.widget.RecycleViewDivider;
+import com.module.recyclerlibrary.listener.OnRecyclerItemClickListener;
+import com.uas.appworks.R;
+import com.uas.appworks.adapter.B2BBusinessCompanyAdapter;
+import com.uas.appworks.model.bean.B2BCompanyBean;
+import com.uas.appworks.presenter.WorkPlatPresenter;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author RaoMeng
+ * @describe B2B商务登录页面
+ * @date 2018/1/15 15:41
+ */
+
+public class B2BBusinessLoginActivity extends BaseMVPActivity {
+
+    private RecyclerView mRecyclerView;
+    private List<B2BCompanyBean> mB2BCompanyBeans;
+    private B2BBusinessCompanyAdapter mB2BBusinessCompanyAdapter;
+
+    @Override
+    protected int getLayout() {
+        return R.layout.activity_b2b_business_login;
+    }
+
+    @Override
+    protected void initView() {
+        getSupportActionBar().setTitle(R.string.str_work_b2b_commerce);
+
+        mRecyclerView = $(R.id.b2b_business_login_company_rv);
+        mRecyclerView.setLayoutManager(new LinearLayoutManager(mContext));
+        mRecyclerView.addItemDecoration(new RecycleViewDivider(this, LinearLayout.HORIZONTAL, 1, getResources().getColor(R.color.gray_light)));
+
+        mB2BCompanyBeans = new ArrayList<>();
+        mB2BBusinessCompanyAdapter = new B2BBusinessCompanyAdapter(mContext, mB2BCompanyBeans);
+        mRecyclerView.setAdapter(mB2BBusinessCompanyAdapter);
+    }
+
+    @Override
+    protected WorkPlatPresenter initPresenter() {
+        return null;
+    }
+
+    @Override
+    protected void initEvent() {
+        mRecyclerView.addOnItemTouchListener(new OnRecyclerItemClickListener(mRecyclerView) {
+            @Override
+            public void onItemClick(RecyclerView.ViewHolder vh) {
+                Intent intent = new Intent();
+                intent.setClass(mContext, B2BBusinessMainActivity.class);
+                intent.putExtra(Constants.FLAG.B2B_COMPANY_BEAN, mB2BCompanyBeans.get(vh.getLayoutPosition()));
+                startActivity(intent);
+            }
+        });
+    }
+
+    @Override
+    protected void initData() {
+        getB2BCompanys();
+    }
+
+    private void getB2BCompanys() {
+        String companyJson = CommonUtil.getSharedPreferences(this, "loginJson");
+        if (JSONUtil.validate(companyJson)) {
+            JSONArray companyArray = JSON.parseArray(companyJson);
+            if (companyArray != null && companyArray.size() > 0) {
+                for (int i = 0; i < companyArray.size(); i++) {
+                    JSONObject companyObject = companyArray.getJSONObject(i);
+                    if (companyObject != null) {
+                        String platform = JSONUtil.getText(companyObject, "platform");
+                        if ("B2B".equals(platform)) {
+                            JSONArray spacesArray = companyObject.getJSONArray("spaces");
+                            if (spacesArray != null && spacesArray.size() > 0) {
+                                for (int j = 0; j < spacesArray.size(); j++) {
+                                    JSONObject spacesObject = spacesArray.getJSONObject(j);
+                                    if (spacesObject != null) {
+                                        B2BCompanyBean b2BCompanyBean = new B2BCompanyBean();
+                                        b2BCompanyBean.setId(JSONUtil.getInt(spacesObject, "id"));
+                                        b2BCompanyBean.setEnuu(JSONUtil.getText(spacesObject, "enuu"));
+                                        b2BCompanyBean.setBusinessCode(JSONUtil.getText(spacesObject, "businessCode"));
+                                        b2BCompanyBean.setName(JSONUtil.getText(spacesObject, "name"));
+
+                                        mB2BCompanyBeans.add(b2BCompanyBean);
+                                    }
+                                }
+                                mB2BBusinessCompanyAdapter.notifyDataSetChanged();
+                            }
+                            break;
+                        }
+                    }
+                }
+            }
+        }
+    }
+
+    @Override
+    public void showLoading(String loadStr) {
+
+    }
+
+    @Override
+    public void hideLoading() {
+
+    }
+}

+ 240 - 0
app_modular/appworks/src/main/java/com/uas/appworks/activity/B2BBusinessMainActivity.java

@@ -0,0 +1,240 @@
+package com.uas.appworks.activity;
+
+import android.content.Intent;
+import android.support.v7.app.ActionBar;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.text.SpannableStringBuilder;
+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.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.scwang.smartrefresh.layout.api.RefreshLayout;
+import com.uas.appworks.R;
+import com.uas.appworks.adapter.B2BAccountAdapter;
+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.List;
+
+/**
+ * @author RaoMeng
+ * @describe B2B商务首页
+ * @date 2018/1/14 14:19
+ */
+
+public class B2BBusinessMainActivity extends BaseMVPActivity<WorkPlatPresenter> implements WorkPlatView, View.OnClickListener {
+
+    private RefreshLayout mRefreshLayout;
+    private ImageView mBackImageView;
+    private DrawableCenterTextView mCompanyNameTextView;
+    private LinearLayout mPurchaseOrderIv;
+    private LinearLayout mCustomerInquiryIv;
+    private LinearLayout mPublicInquiryIv;
+    private TextView mPurchaseOrderAllTv;
+    private RecyclerView mPurchaseOrderRv;
+    private TextView mCustomerInquiryAllTv;
+    private RecyclerView mCustomerInquiryRv;
+    private TextView mPublicInquiryAllTv;
+    private RecyclerView mPublicInquiryRv;
+    private MaterialDialog mAccountDialog;
+    private RecyclerView mAccountRecyclerView;
+    private TextView mAccountSureTextView, mAccountCancelTextView;
+
+    private B2BCompanyBean mB2BCompanyBean;
+    private SpanUtils mSpanUtils;
+    private List<B2BCompanyBean> mB2BCompanyBeans;
+    private B2BAccountAdapter mB2BAccountAdapter;
+
+    @Override
+    protected int getLayout() {
+        return R.layout.activity_b2b_business_main;
+    }
+
+    @Override
+    protected void initView() {
+        View actionView = View.inflate(mContext, R.layout.action_b2b_company, null);
+        mBackImageView = (ImageView) actionView.findViewById(R.id.b2b_company_back);
+        mCompanyNameTextView = (DrawableCenterTextView) actionView.findViewById(R.id.b2b_company_name);
+
+        ActionBar actionBar = getSupportActionBar();
+        actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
+        actionBar.setCustomView(actionView);
+
+        mRefreshLayout = $(R.id.b2b_business_main_refreshlayout);
+        mPurchaseOrderIv = $(R.id.b2b_business_main_purchase_order_iv);
+        mCustomerInquiryIv = $(R.id.b2b_business_main_customer_inquiry_iv);
+        mPublicInquiryIv = $(R.id.b2b_business_main_public_inquiry_iv);
+        mPurchaseOrderAllTv = $(R.id.b2b_business_main_purchase_order_all_tv);
+        mPurchaseOrderRv = $(R.id.b2b_business_main_purchase_order_rv);
+        mCustomerInquiryAllTv = $(R.id.b2b_business_main_customer_inquiry_all_tv);
+        mCustomerInquiryRv = $(R.id.b2b_business_main_customer_inquiry_rv);
+        mPublicInquiryAllTv = $(R.id.b2b_business_main_public_inquiry_all_tv);
+        mPublicInquiryRv = $(R.id.b2b_business_main_public_inquiry_rv);
+
+        View accountView = View.inflate(mContext, R.layout.pop_b2b_change_account, null);
+        mAccountRecyclerView = (RecyclerView) accountView.findViewById(R.id.b2b_change_account_rv);
+        mAccountRecyclerView.setLayoutManager(new LinearLayoutManager(mContext));
+        mAccountSureTextView = (TextView) accountView.findViewById(R.id.b2b_change_account_sure_tv);
+        mAccountCancelTextView = (TextView) accountView.findViewById(R.id.b2b_change_account_cancel_tv);
+
+        mB2BCompanyBeans = new ArrayList<>();
+        mB2BAccountAdapter = new B2BAccountAdapter(mContext, mB2BCompanyBeans);
+        mAccountRecyclerView.setAdapter(mB2BAccountAdapter);
+
+        mAccountDialog = new MaterialDialog.Builder(mContext)
+                .customView(accountView, true)
+                .build();
+    }
+
+    @Override
+    protected WorkPlatPresenter initPresenter() {
+        return new WorkPlatPresenter();
+    }
+
+    @Override
+    protected void initEvent() {
+        mBackImageView.setOnClickListener(this);
+        mCompanyNameTextView.setOnClickListener(this);
+        mPurchaseOrderIv.setOnClickListener(this);
+        mPurchaseOrderAllTv.setOnClickListener(this);
+        mCustomerInquiryIv.setOnClickListener(this);
+        mCustomerInquiryAllTv.setOnClickListener(this);
+        mPublicInquiryIv.setOnClickListener(this);
+        mPublicInquiryAllTv.setOnClickListener(this);
+        mAccountSureTextView.setOnClickListener(this);
+        mAccountCancelTextView.setOnClickListener(this);
+    }
+
+    @Override
+    protected void initData() {
+        Intent intent = getIntent();
+        if (intent != null) {
+            mB2BCompanyBean = (B2BCompanyBean) intent.getSerializableExtra(Constants.FLAG.B2B_COMPANY_BEAN);
+            mSpanUtils = new SpanUtils();
+            SpannableStringBuilder companyName = mSpanUtils.append(mB2BCompanyBean.getName()).setUnderline().create();
+            mCompanyNameTextView.setText(companyName);
+        }
+    }
+
+    @Override
+    public void showLoading(String loadStr) {
+        if (!mRefreshLayout.isRefreshing()) {
+            progressDialog.show();
+        }
+    }
+
+    @Override
+    public void hideLoading() {
+        if (mRefreshLayout.isRefreshing()) {
+            mRefreshLayout.finishRefresh(0);
+        }
+        progressDialog.dismiss();
+    }
+
+    @Override
+    public void requestSuccess(int what, Object object) {
+
+    }
+
+    @Override
+    public void requestError(int what, String errorMsg) {
+
+    }
+
+    @Override
+    public void onClick(View view) {
+        int i = view.getId();
+        if (i == R.id.b2b_company_back) {
+            onBackPressed();
+        } else if (i == R.id.b2b_company_name) {
+            popAccountList();
+        } else if (i == R.id.b2b_business_main_purchase_order_iv
+                || i == R.id.b2b_business_main_purchase_order_all_tv) {
+            startActivity(PurchaseOrderListActivity.class);
+        } else if (i == R.id.b2b_business_main_customer_inquiry_iv
+                || i == R.id.b2b_business_main_customer_inquiry_all_tv) {
+            startActivity(CustomerInquiryListActivity.class);
+        } else if (i == R.id.b2b_business_main_public_inquiry_iv
+                || 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;
+                }
+            }
+            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();
+        }
+    }
+
+    private void popAccountList() {
+        if (mB2BCompanyBeans == null || mB2BCompanyBeans.size() == 0) {
+            getB2BCompanys();
+        }
+        if (mB2BCompanyBeans == null || mB2BCompanyBeans.size() == 0) {
+            toast("您的账号未绑定任何B2B账套");
+        } else {
+            mB2BAccountAdapter.notifyDataSetChanged();
+            mAccountDialog.show();
+        }
+    }
+
+    private void getB2BCompanys() {
+        String companyJson = CommonUtil.getSharedPreferences(this, "loginJson");
+        if (JSONUtil.validate(companyJson)) {
+            JSONArray companyArray = JSON.parseArray(companyJson);
+            if (companyArray != null && companyArray.size() > 0) {
+                for (int i = 0; i < companyArray.size(); i++) {
+                    JSONObject companyObject = companyArray.getJSONObject(i);
+                    if (companyObject != null) {
+                        String platform = JSONUtil.getText(companyObject, "platform");
+                        if ("B2B".equals(platform)) {
+                            JSONArray spacesArray = companyObject.getJSONArray("spaces");
+                            if (spacesArray != null && spacesArray.size() > 0) {
+                                for (int j = 0; j < spacesArray.size(); j++) {
+                                    JSONObject spacesObject = spacesArray.getJSONObject(j);
+                                    if (spacesObject != null) {
+                                        String name = JSONUtil.getText(spacesObject, "name");
+                                        B2BCompanyBean b2BCompanyBean = new B2BCompanyBean();
+                                        b2BCompanyBean.setId(JSONUtil.getInt(spacesObject, "id"));
+                                        b2BCompanyBean.setEnuu(JSONUtil.getText(spacesObject, "enuu"));
+                                        b2BCompanyBean.setBusinessCode(JSONUtil.getText(spacesObject, "businessCode"));
+                                        b2BCompanyBean.setName(name);
+                                        if (mB2BCompanyBean != null && name.equals(mB2BCompanyBean.getName())) {
+                                            b2BCompanyBean.setSelected(true);
+                                        } else {
+                                            b2BCompanyBean.setSelected(false);
+                                        }
+
+                                        mB2BCompanyBeans.add(b2BCompanyBean);
+                                    }
+                                }
+                            }
+                            break;
+                        }
+                    }
+                }
+            }
+        }
+    }
+}

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

@@ -0,0 +1,49 @@
+package com.uas.appworks.activity;
+
+import com.core.base.activity.BaseMVPActivity;
+import com.uas.appworks.presenter.WorkPlatPresenter;
+
+/**
+ * @author RaoMeng
+ * @describe
+ * @date 2018/1/16 16:46
+ */
+
+public class CustomerInquiryDetailActivity extends BaseMVPActivity<WorkPlatPresenter> {
+
+
+    @Override
+    protected int getLayout() {
+        return 0;
+    }
+
+    @Override
+    protected void initView() {
+
+    }
+
+    @Override
+    protected WorkPlatPresenter initPresenter() {
+        return null;
+    }
+
+    @Override
+    protected void initEvent() {
+
+    }
+
+    @Override
+    protected void initData() {
+
+    }
+
+    @Override
+    public void showLoading(String loadStr) {
+
+    }
+
+    @Override
+    public void hideLoading() {
+
+    }
+}

+ 125 - 0
app_modular/appworks/src/main/java/com/uas/appworks/activity/CustomerInquiryListActivity.java

@@ -0,0 +1,125 @@
+package com.uas.appworks.activity;
+
+import android.support.v4.app.Fragment;
+import android.support.v4.view.ViewPager;
+import android.support.v7.app.ActionBar;
+
+import com.core.base.activity.BaseMVPActivity;
+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.presenter.WorkPlatPresenter;
+import com.uas.appworks.view.WorkPlatView;
+import com.viewpagerindicator.TabPageIndicator;
+import com.viewpagerindicator.UnderlinePageIndicator;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author RaoMeng
+ * @describe 客户询价单列表页面
+ * @date 2018/1/15 10:09
+ */
+
+public class CustomerInquiryListActivity extends BaseMVPActivity<WorkPlatPresenter> implements WorkPlatView {
+
+    private TabPageIndicator mTabPageIndicator;
+    private UnderlinePageIndicator mUnderlinePageIndicator;
+    private List<Fragment> mFragments;
+    private TabViewpagerAdapter mTabViewpagerAdapter;
+    private ViewPager mViewPager;
+    private List<String> mTitleStrings;
+    private SearchActionView mSearchActionView;
+
+    private B2BBusinessListFragment1 mAllFragment;
+    private B2BBusinessListFragment2 mWaitQuotedFragment;
+    private B2BBusinessListFragment3 mQuotedPriceFragment;
+    private B2BBusinessListFragment4 mQuotationAdoptedFragment;
+    private B2BBusinessListFragment5 mExpiredFragment;
+
+    @Override
+    protected int getLayout() {
+        return R.layout.activity_tab_viewpager;
+    }
+
+    @Override
+    protected void initView() {
+        mSearchActionView = new SearchActionView(mContext);
+        ActionBar bar = this.getSupportActionBar();
+        bar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
+        bar.setCustomView(mSearchActionView);
+
+        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();
+
+        mFragments = new ArrayList<>();
+        mFragments.add(mAllFragment);
+        mFragments.add(mWaitQuotedFragment);
+        mFragments.add(mQuotedPriceFragment);
+        mFragments.add(mQuotationAdoptedFragment);
+        mFragments.add(mExpiredFragment);
+
+        mTitleStrings = new ArrayList<>();
+        mTitleStrings.add(getString(R.string.all));
+        mTitleStrings.add(getString(R.string.str_wait_quoted));
+        mTitleStrings.add(getString(R.string.str_quoted_price));
+        mTitleStrings.add(getString(R.string.str_adopted));
+        mTitleStrings.add(getString(R.string.str_expired));
+        mTabViewpagerAdapter = new TabViewpagerAdapter(this, mFragments, mTitleStrings, getSupportFragmentManager());
+
+        mViewPager.setOffscreenPageLimit(mFragments.size() - 1);
+        mViewPager.setAdapter(mTabViewpagerAdapter);
+        mTabPageIndicator.setViewPager(mViewPager);
+        mUnderlinePageIndicator.setFades(false);
+        mUnderlinePageIndicator.setViewPager(mViewPager);
+        mTabPageIndicator.setOnPageChangeListener(mUnderlinePageIndicator);
+    }
+
+    @Override
+    protected WorkPlatPresenter initPresenter() {
+        return new WorkPlatPresenter();
+    }
+
+    @Override
+    protected void initEvent() {
+
+    }
+
+    @Override
+    protected void initData() {
+
+    }
+
+    @Override
+    public void showLoading(String loadStr) {
+
+    }
+
+    @Override
+    public void hideLoading() {
+
+    }
+
+    @Override
+    public void requestSuccess(int what, Object object) {
+
+    }
+
+    @Override
+    public void requestError(int what, String errorMsg) {
+
+    }
+}

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

@@ -0,0 +1,61 @@
+package com.uas.appworks.activity;
+
+import android.support.v7.widget.RecyclerView;
+
+import com.core.base.activity.BaseMVPActivity;
+import com.uas.appworks.R;
+import com.uas.appworks.adapter.B2BDetailListAdapter;
+import com.uas.appworks.model.bean.B2BDetailListBean;
+import com.uas.appworks.presenter.WorkPlatPresenter;
+
+import java.util.List;
+
+/**
+ * @author RaoMeng
+ * @describe 公共询价单详情页
+ * @date 2018/1/16 15:31
+ */
+
+public class PublicInquiryDetailActivity extends BaseMVPActivity<WorkPlatPresenter> {
+
+    private RecyclerView mInquiryRecyclerView, mMaterialRecyclerView;
+    private List<B2BDetailListBean> mInquiryListBeans, mMaterialListBeans;
+    private B2BDetailListAdapter mInquiryListAdapter, mMaterialListAdapter;
+
+    @Override
+    protected int getLayout() {
+        return R.layout.activity_public_inquiry_detail;
+    }
+
+    @Override
+    protected void initView() {
+        mInquiryRecyclerView = $(R.id.public_inquiry_detail_inquiry_information_rv);
+        mMaterialRecyclerView = $(R.id.public_inquiry_detail_material_information_rv);
+    }
+
+    @Override
+    protected WorkPlatPresenter initPresenter() {
+        return null;
+    }
+
+    @Override
+    protected void initEvent() {
+
+    }
+
+    @Override
+    protected void initData() {
+
+    }
+
+    @Override
+    public void showLoading(String loadStr) {
+
+    }
+
+    @Override
+    public void hideLoading() {
+
+    }
+
+}

+ 120 - 0
app_modular/appworks/src/main/java/com/uas/appworks/activity/PublicInquiryListActivity.java

@@ -0,0 +1,120 @@
+package com.uas.appworks.activity;
+
+import android.support.v4.app.Fragment;
+import android.support.v4.view.ViewPager;
+import android.support.v7.app.ActionBar;
+
+import com.core.base.activity.BaseMVPActivity;
+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.presenter.WorkPlatPresenter;
+import com.uas.appworks.view.WorkPlatView;
+import com.viewpagerindicator.TabPageIndicator;
+import com.viewpagerindicator.UnderlinePageIndicator;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author RaoMeng
+ * @describe 公共询价单列表页面
+ * @date 2018/1/15 10:09
+ */
+
+public class PublicInquiryListActivity extends BaseMVPActivity<WorkPlatPresenter> implements WorkPlatView {
+
+    private TabPageIndicator mTabPageIndicator;
+    private UnderlinePageIndicator mUnderlinePageIndicator;
+    private List<Fragment> mFragments;
+    private TabViewpagerAdapter mTabViewpagerAdapter;
+    private ViewPager mViewPager;
+    private List<String> mTitleStrings;
+    private SearchActionView mSearchActionView;
+
+    private B2BBusinessListFragment1 mAllFragment;
+    private B2BBusinessListFragment2 mWaitQuotedFragment;
+    private B2BBusinessListFragment3 mQuotedPriceFragment;
+    private B2BBusinessListFragment4 mExpiredFragment;
+
+    @Override
+    protected int getLayout() {
+        return R.layout.activity_tab_viewpager;
+    }
+
+    @Override
+    protected void initView() {
+        mSearchActionView = new SearchActionView(mContext);
+        ActionBar bar = this.getSupportActionBar();
+        bar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
+        bar.setCustomView(mSearchActionView);
+
+        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();
+
+        mFragments = new ArrayList<>();
+        mFragments.add(mAllFragment);
+        mFragments.add(mWaitQuotedFragment);
+        mFragments.add(mQuotedPriceFragment);
+        mFragments.add(mExpiredFragment);
+
+        mTitleStrings = new ArrayList<>();
+        mTitleStrings.add(getString(R.string.all));
+        mTitleStrings.add(getString(R.string.str_wait_quoted));
+        mTitleStrings.add(getString(R.string.str_quoted_price));
+        mTitleStrings.add(getString(R.string.str_expired));
+        mTabViewpagerAdapter = new TabViewpagerAdapter(this, mFragments, mTitleStrings, getSupportFragmentManager());
+
+        mViewPager.setOffscreenPageLimit(mFragments.size() - 1);
+        mViewPager.setAdapter(mTabViewpagerAdapter);
+        mTabPageIndicator.setViewPager(mViewPager);
+        mUnderlinePageIndicator.setFades(false);
+        mUnderlinePageIndicator.setViewPager(mViewPager);
+        mTabPageIndicator.setOnPageChangeListener(mUnderlinePageIndicator);
+    }
+
+    @Override
+    protected WorkPlatPresenter initPresenter() {
+        return new WorkPlatPresenter();
+    }
+
+    @Override
+    protected void initEvent() {
+
+    }
+
+    @Override
+    protected void initData() {
+
+    }
+
+    @Override
+    public void showLoading(String loadStr) {
+
+    }
+
+    @Override
+    public void hideLoading() {
+
+    }
+
+    @Override
+    public void requestSuccess(int what, Object object) {
+
+    }
+
+    @Override
+    public void requestError(int what, String errorMsg) {
+
+    }
+}

+ 216 - 0
app_modular/appworks/src/main/java/com/uas/appworks/activity/PurchaseOrderListActivity.java

@@ -0,0 +1,216 @@
+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.base.activity.BaseMVPActivity;
+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.model.bean.B2BBusinessListBean;
+import com.uas.appworks.presenter.WorkPlatPresenter;
+import com.uas.appworks.view.WorkPlatView;
+import com.viewpagerindicator.TabPageIndicator;
+import com.viewpagerindicator.UnderlinePageIndicator;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author RaoMeng
+ * @describe 客户采购单列表页面
+ * @date 2018/1/15 10:09
+ */
+
+public class PurchaseOrderListActivity extends BaseMVPActivity<WorkPlatPresenter> implements WorkPlatView {
+
+    private TabPageIndicator mTabPageIndicator;
+    private UnderlinePageIndicator mUnderlinePageIndicator;
+    private List<Fragment> mFragments;
+    private TabViewpagerAdapter mTabViewpagerAdapter;
+    private ViewPager mViewPager;
+    private List<String> mTitleStrings;
+    private SearchActionView mSearchActionView;
+    private RefreshLayout mRefreshLayout;
+
+    private B2BBusinessListFragment1 mAllFragment, mRepliedFragment, mWaitReplyFragment, mSettledFragment;
+
+    @Override
+    protected int getLayout() {
+        return R.layout.activity_tab_viewpager;
+    }
+
+    @Override
+    protected void initView() {
+        mSearchActionView = new SearchActionView(mContext);
+        ActionBar bar = this.getSupportActionBar();
+        bar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
+        bar.setCustomView(mSearchActionView);
+
+        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();
+
+        mFragments = new ArrayList<>();
+        mFragments.add(mAllFragment);
+        mFragments.add(mRepliedFragment);
+        mFragments.add(mWaitReplyFragment);
+        mFragments.add(mSettledFragment);
+
+        mTitleStrings = new ArrayList<>();
+        mTitleStrings.add(getString(R.string.all));
+        mTitleStrings.add(getString(R.string.str_have_replied));
+        mTitleStrings.add(getString(R.string.str_wait_for_reply));
+        mTitleStrings.add(getString(R.string.str_case_closed));
+        mTabViewpagerAdapter = new TabViewpagerAdapter(this, mFragments, mTitleStrings, getSupportFragmentManager());
+
+        mViewPager.setOffscreenPageLimit(mFragments.size() - 1);
+        mViewPager.setAdapter(mTabViewpagerAdapter);
+        mTabPageIndicator.setViewPager(mViewPager);
+        mUnderlinePageIndicator.setFades(false);
+        mUnderlinePageIndicator.setViewPager(mViewPager);
+        mTabPageIndicator.setOnPageChangeListener(mUnderlinePageIndicator);
+    }
+
+    @Override
+    protected WorkPlatPresenter initPresenter() {
+        return new WorkPlatPresenter();
+    }
+
+    @Override
+    protected void initEvent() {
+        mRefreshLayout.setOnRefreshListener(new OnRefreshListener() {
+            @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);
+                }
+
+                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() {
+            @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);
+                }
+
+                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
+    protected void initData() {
+
+    }
+
+    @Override
+    public void showLoading(String loadStr) {
+
+    }
+
+    @Override
+    public void hideLoading() {
+
+    }
+
+    @Override
+    public void requestSuccess(int what, Object object) {
+
+    }
+
+    @Override
+    public void requestError(int what, String errorMsg) {
+
+    }
+}

+ 76 - 0
app_modular/appworks/src/main/java/com/uas/appworks/adapter/B2BAccountAdapter.java

@@ -0,0 +1,76 @@
+package com.uas.appworks.adapter;
+
+import android.content.Context;
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.CheckBox;
+
+import com.uas.appworks.R;
+import com.uas.appworks.model.bean.B2BCompanyBean;
+
+import java.util.List;
+
+/**
+ * @author RaoMeng
+ * @describe
+ * @date 2018/1/16 11:09
+ */
+
+public class B2BAccountAdapter extends RecyclerView.Adapter<B2BAccountAdapter.B2BAccountViewHolder> {
+    private Context mContext;
+    private LayoutInflater mLayoutInflater;
+    private List<B2BCompanyBean> mB2BCompanyBeans;
+
+    public B2BAccountAdapter(Context context, List<B2BCompanyBean> b2BCompanyBeans) {
+        mContext = context;
+        mB2BCompanyBeans = b2BCompanyBeans;
+        mLayoutInflater = LayoutInflater.from(mContext);
+    }
+
+    @Override
+    public B2BAccountViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+        View itemView = mLayoutInflater.inflate(R.layout.layout_list_b2b_account, parent, false);
+        return new B2BAccountViewHolder(itemView);
+    }
+
+    @Override
+    public void onBindViewHolder(B2BAccountViewHolder holder, final int position) {
+        B2BCompanyBean b2BCompanyBean = mB2BCompanyBeans.get(position);
+        holder.mCheckBox.setChecked(b2BCompanyBean.isSelected());
+        holder.mCheckBox.setText(b2BCompanyBean.getName());
+
+        holder.mCheckBox.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                for (int i = 0; i < mB2BCompanyBeans.size(); i++) {
+                    if (mB2BCompanyBeans.get(i).isSelected()) {
+                        if (i == position) {
+                            break;
+                        } else {
+                            mB2BCompanyBeans.get(i).setSelected(false);
+                            notifyItemChanged(i);
+                        }
+                    }
+                }
+                mB2BCompanyBeans.get(position).setSelected(true);
+                notifyItemChanged(position);
+            }
+        });
+    }
+
+    @Override
+    public int getItemCount() {
+        return mB2BCompanyBeans == null ? 0 : mB2BCompanyBeans.size();
+    }
+
+    class B2BAccountViewHolder extends RecyclerView.ViewHolder {
+        private CheckBox mCheckBox;
+
+        public B2BAccountViewHolder(View itemView) {
+            super(itemView);
+            mCheckBox = (CheckBox) itemView.findViewById(R.id.list_b2b_account_cb);
+        }
+    }
+}

+ 59 - 0
app_modular/appworks/src/main/java/com/uas/appworks/adapter/B2BBusinessCompanyAdapter.java

@@ -0,0 +1,59 @@
+package com.uas.appworks.adapter;
+
+import android.content.Context;
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import com.uas.appworks.R;
+import com.uas.appworks.model.bean.B2BCompanyBean;
+
+import org.w3c.dom.Text;
+
+import java.util.List;
+
+/**
+ * @author RaoMeng
+ * @describe
+ * @date 2018/1/15 16:04
+ */
+
+public class B2BBusinessCompanyAdapter extends RecyclerView.Adapter<B2BBusinessCompanyAdapter.MyViewHolder> {
+    private Context mContext;
+    private LayoutInflater mLayoutInflater;
+    private List<B2BCompanyBean> mB2BCompanyBeans;
+
+    public B2BBusinessCompanyAdapter(Context context, List<B2BCompanyBean> b2BCompanyBeans) {
+        mContext = context;
+        mB2BCompanyBeans = b2BCompanyBeans;
+        mLayoutInflater = LayoutInflater.from(mContext);
+    }
+
+    @Override
+    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+        View itemView = mLayoutInflater.inflate(R.layout.layout_list_b2b_company, parent, false);
+        return new MyViewHolder(itemView);
+    }
+
+    @Override
+    public void onBindViewHolder(MyViewHolder holder, int position) {
+        holder.companyTextView.setText(mB2BCompanyBeans.get(position).getName());
+    }
+
+    @Override
+    public int getItemCount() {
+        return mB2BCompanyBeans == null ? 0 : mB2BCompanyBeans.size();
+    }
+
+    class MyViewHolder extends RecyclerView.ViewHolder {
+        private TextView companyTextView;
+
+        public MyViewHolder(View itemView) {
+            super(itemView);
+
+            companyTextView = (TextView) itemView.findViewById(R.id.b2b_company_name_tv);
+        }
+    }
+}

+ 59 - 0
app_modular/appworks/src/main/java/com/uas/appworks/adapter/B2BDetailListAdapter.java

@@ -0,0 +1,59 @@
+package com.uas.appworks.adapter;
+
+import android.content.Context;
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import com.uas.appworks.R;
+import com.uas.appworks.model.bean.B2BDetailListBean;
+
+import java.util.List;
+
+/**
+ * @author RaoMeng
+ * @describe
+ * @date 2018/1/16 16:12
+ */
+
+public class B2BDetailListAdapter extends RecyclerView.Adapter<B2BDetailListAdapter.B2BDetailViewHolder> {
+
+    private Context mContext;
+    private LayoutInflater mLayoutInflater;
+    private List<B2BDetailListBean> mB2BDetailListBeans;
+
+    public B2BDetailListAdapter(Context context, List<B2BDetailListBean> b2BDetailListBeans) {
+        mContext = context;
+        mB2BDetailListBeans = b2BDetailListBeans;
+        mLayoutInflater = LayoutInflater.from(mContext);
+    }
+
+    @Override
+    public B2BDetailViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+        View itemView = mLayoutInflater.inflate(R.layout.layout_list_b2b_detail, parent, false);
+        return new B2BDetailViewHolder(itemView);
+    }
+
+    @Override
+    public void onBindViewHolder(B2BDetailViewHolder holder, int position) {
+        holder.captionTextView.setText(mB2BDetailListBeans.get(position).getCaption() + ":");
+        holder.valueTextView.setText(mB2BDetailListBeans.get(position).getValue());
+    }
+
+    @Override
+    public int getItemCount() {
+        return mB2BDetailListBeans == null ? 0 : mB2BDetailListBeans.size();
+    }
+
+    class B2BDetailViewHolder extends RecyclerView.ViewHolder {
+        private TextView captionTextView, valueTextView;
+
+        public B2BDetailViewHolder(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);
+        }
+    }
+}

+ 153 - 0
app_modular/appworks/src/main/java/com/uas/appworks/adapter/B2bBusinessListAdapter.java

@@ -0,0 +1,153 @@
+package com.uas.appworks.adapter;
+
+import android.content.Context;
+import android.view.View;
+import android.widget.TextView;
+
+import com.chad.library.adapter.base.BaseMultiItemQuickAdapter;
+import com.chad.library.adapter.base.BaseViewHolder;
+import com.uas.appworks.R;
+import com.uas.appworks.model.bean.B2BBusinessListBean;
+
+import java.util.List;
+
+/**
+ * @author RaoMeng
+ * @describe
+ * @date 2018/1/15 11:50
+ */
+
+public class B2bBusinessListAdapter extends BaseMultiItemQuickAdapter<B2BBusinessListBean, BaseViewHolder> {
+
+    public B2bBusinessListAdapter(Context context, List<B2BBusinessListBean> b2BBusinessListBeans) {
+        super(b2BBusinessListBeans);
+        addItemType(B2BBusinessListBean.PURCHASE_ORDER_LIST, R.layout.layout_list_purchase_order);
+        addItemType(B2BBusinessListBean.CUSTOMER_INQUIRY_LIST, R.layout.layout_list_customer_inquiry);
+        addItemType(B2BBusinessListBean.PUBLIC_INQUIRY_LIST, R.layout.layout_list_public_inquiry);
+    }
+
+    @Override
+    protected void convert(BaseViewHolder baseViewHolder, B2BBusinessListBean b2BBusinessListBean) {
+        if (baseViewHolder != null) {
+            switch (baseViewHolder.getItemViewType()) {
+                case B2BBusinessListBean.PURCHASE_ORDER_LIST:
+                    bindPurchaseOrder(baseViewHolder, b2BBusinessListBean);
+                    break;
+                case B2BBusinessListBean.CUSTOMER_INQUIRY_LIST:
+                    bindCustomerInquiry(baseViewHolder, b2BBusinessListBean);
+                    break;
+                case B2BBusinessListBean.PUBLIC_INQUIRY_LIST:
+                    bindPublicInquiry(baseViewHolder, b2BBusinessListBean);
+                    break;
+            }
+        }
+    }
+
+    private void bindPublicInquiry(BaseViewHolder holder, B2BBusinessListBean b2BBusinessListBean) {
+        holder.setText(R.id.list_public_inquiry_company_tv, b2BBusinessListBean.getCompanyName());
+        holder.setText(R.id.list_public_inquiry_bill_date_tv, b2BBusinessListBean.getBillDate());
+        holder.setText(R.id.list_public_inquiry_product_name_tv, b2BBusinessListBean.getProductName());
+        holder.setText(R.id.list_public_inquiry_product_model_tv, b2BBusinessListBean.getProductModel());
+        holder.setText(R.id.list_public_inquiry_product_specification_tv, b2BBusinessListBean.getProductSpecification());
+        holder.setText(R.id.list_public_inquiry_product_amount_tv, b2BBusinessListBean.getProductAmount());
+        holder.setText(R.id.list_public_inquiry_product_brand_tv, b2BBusinessListBean.getProductBrand());
+        holder.setText(R.id.list_public_inquiry_expiry_date_tv, b2BBusinessListBean.getExpiryDate());
+
+    }
+
+    private void bindCustomerInquiry(BaseViewHolder holder, B2BBusinessListBean b2BBusinessListBean) {
+        holder.setText(R.id.list_customer_inquiry_company_tv, b2BBusinessListBean.getCompanyName());
+        holder.setText(R.id.list_customer_inquiry_bill_date_tv, b2BBusinessListBean.getBillDate());
+        holder.setText(R.id.list_customer_inquiry_bill_num_tv, b2BBusinessListBean.getBillNum());
+        holder.setText(R.id.list_customer_inquiry_material_num_tv, b2BBusinessListBean.getMaterialNum());
+        holder.setText(R.id.list_customer_inquiry_expiry_date_tv, b2BBusinessListBean.getExpiryDate());
+
+    }
+
+    private void bindPurchaseOrder(BaseViewHolder holder, B2BBusinessListBean b2BBusinessListBean) {
+        holder.setText(R.id.list_purchase_order_company_tv, b2BBusinessListBean.getCompanyName());
+        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());
+
+    }
+
+    class CustomerInquiryViewHolder extends BaseViewHolder {
+        TextView companyTextView;
+        TextView billDateTextView;
+        TextView billNumTextView;
+        TextView materialNumTextView;
+        TextView expiryDateTextView;
+        TextView quotationAdoptedBtn;
+        TextView expiredBtn;
+        TextView quotedPriceBtn;
+
+        public CustomerInquiryViewHolder(View itemView) {
+            super(itemView);
+
+            companyTextView = (TextView) itemView.findViewById(R.id.list_customer_inquiry_company_tv);
+            billDateTextView = (TextView) itemView.findViewById(R.id.list_customer_inquiry_bill_date_tv);
+            billNumTextView = (TextView) itemView.findViewById(R.id.list_customer_inquiry_bill_num_tv);
+            materialNumTextView = (TextView) itemView.findViewById(R.id.list_customer_inquiry_material_num_tv);
+            expiryDateTextView = (TextView) itemView.findViewById(R.id.list_customer_inquiry_expiry_date_tv);
+            quotationAdoptedBtn = (TextView) itemView.findViewById(R.id.list_customer_inquiry_quotation_adopted_btn);
+            expiredBtn = (TextView) itemView.findViewById(R.id.list_customer_inquiry_expired_btn);
+            quotedPriceBtn = (TextView) itemView.findViewById(R.id.list_customer_inquiry_quoted_price_btn);
+        }
+    }
+
+    class PublicInquiryViewHolder extends BaseViewHolder {
+        TextView companyTextView;
+        TextView billDateTextView;
+        TextView productNameTextView;
+        TextView productModelTextView;
+        TextView productSpecificationTextView;
+        TextView productAmountTextView;
+        TextView productBrandTextView;
+        TextView expiryDateTextView;
+        TextView offerQuotationBtn;
+        TextView expiredBtn;
+        TextView quotedPriceBtn;
+
+        public PublicInquiryViewHolder(View itemView) {
+            super(itemView);
+
+            companyTextView = (TextView) itemView.findViewById(R.id.list_public_inquiry_company_tv);
+            billDateTextView = (TextView) itemView.findViewById(R.id.list_public_inquiry_bill_date_tv);
+            productNameTextView = (TextView) itemView.findViewById(R.id.list_public_inquiry_product_name_tv);
+            productModelTextView = (TextView) itemView.findViewById(R.id.list_public_inquiry_product_model_tv);
+            productSpecificationTextView = (TextView) itemView.findViewById(R.id.list_public_inquiry_product_specification_tv);
+            productAmountTextView = (TextView) itemView.findViewById(R.id.list_public_inquiry_product_amount_tv);
+            productBrandTextView = (TextView) itemView.findViewById(R.id.list_public_inquiry_product_brand_tv);
+            expiryDateTextView = (TextView) itemView.findViewById(R.id.list_public_inquiry_expiry_date_tv);
+            offerQuotationBtn = (TextView) itemView.findViewById(R.id.list_public_inquiry_offer_quotation_btn);
+            expiredBtn = (TextView) itemView.findViewById(R.id.list_public_inquiry_expired_btn);
+            quotedPriceBtn = (TextView) itemView.findViewById(R.id.list_public_inquiry_quoted_price_btn);
+        }
+    }
+
+    class PurchaseOrderViewHolder extends BaseViewHolder {
+        TextView companyTextView;
+        TextView billDateTextView;
+        TextView billNumTextView;
+        TextView materialNumTextView;
+        TextView moneyTextView;
+        TextView WaitReplyBtn;
+        TextView RepliedBtn;
+        TextView caseClosedBtn;
+
+        public PurchaseOrderViewHolder(View itemView) {
+            super(itemView);
+
+            companyTextView = (TextView) itemView.findViewById(R.id.list_purchase_order_company_tv);
+            billDateTextView = (TextView) itemView.findViewById(R.id.list_purchase_order_bill_date_tv);
+            billNumTextView = (TextView) itemView.findViewById(R.id.list_purchase_order_bill_num_tv);
+            materialNumTextView = (TextView) itemView.findViewById(R.id.list_purchase_order_material_num_tv);
+            moneyTextView = (TextView) itemView.findViewById(R.id.list_purchase_order_money_tv);
+            WaitReplyBtn = (TextView) itemView.findViewById(R.id.list_purchase_order_wait_reply_btn);
+            RepliedBtn = (TextView) itemView.findViewById(R.id.list_purchase_order_have_replied_btn);
+            caseClosedBtn = (TextView) itemView.findViewById(R.id.list_purchase_order_case_closed_btn);
+        }
+    }
+}

+ 42 - 0
app_modular/appworks/src/main/java/com/uas/appworks/adapter/TabViewpagerAdapter.java

@@ -0,0 +1,42 @@
+package com.uas.appworks.adapter;
+
+import android.content.Context;
+import android.support.v4.app.Fragment;
+import android.support.v4.app.FragmentManager;
+import android.support.v4.app.FragmentPagerAdapter;
+
+import java.util.List;
+
+/**
+ * @author RaoMeng
+ * @describe
+ * @date 2018/1/15 11:02
+ */
+
+public class TabViewpagerAdapter extends FragmentPagerAdapter {
+    private Context mContext;
+    private List<Fragment> mFragments;
+    private List<String> mTitles;
+
+    public TabViewpagerAdapter(Context context, List<Fragment> fragments, List<String> titles, FragmentManager fm) {
+        super(fm);
+        mContext = context;
+        mFragments = fragments;
+        mTitles = titles;
+    }
+
+    @Override
+    public Fragment getItem(int position) {
+        return mFragments.get(position);
+    }
+
+    @Override
+    public int getCount() {
+        return mFragments.size();
+    }
+
+    @Override
+    public CharSequence getPageTitle(int position) {
+        return mTitles.get(position);
+    }
+}

+ 95 - 0
app_modular/appworks/src/main/java/com/uas/appworks/fragment/B2BBusinessListFragment1.java

@@ -0,0 +1,95 @@
+package com.uas.appworks.fragment;
+
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.widget.LinearLayout;
+
+import com.core.base.fragment.BaseMVPFragment;
+import com.core.widget.RecycleViewDivider;
+import com.uas.appworks.R;
+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.List;
+
+/**
+ * @author RaoMeng
+ * @describe B2B商务列表fragment
+ * @date 2018/1/15 11:11
+ */
+
+public class B2BBusinessListFragment1 extends BaseMVPFragment<WorkPlatPresenter> implements WorkPlatView {
+
+    private RecyclerView mRecyclerView;
+    private B2bBusinessListAdapter mB2BBusinessListAdapter;
+    private List<B2BBusinessListBean> mB2BBusinessListBeans;
+
+    @Override
+    protected WorkPlatPresenter initPresenter() {
+        return new WorkPlatPresenter();
+    }
+
+    @Override
+    protected int getLayout() {
+        return R.layout.fragment_b2b_list;
+    }
+
+    @Override
+    protected void initViews() {
+        mRecyclerView = $(R.id.b2b_list_rv);
+
+        mB2BBusinessListBeans = new ArrayList<>();
+        mB2BBusinessListAdapter = new B2bBusinessListAdapter(mContext, mB2BBusinessListBeans);
+
+        mRecyclerView.setLayoutManager(new LinearLayoutManager(mContext));
+        mRecyclerView.setNestedScrollingEnabled(false);
+        mRecyclerView.addItemDecoration(new RecycleViewDivider(mContext, LinearLayout.HORIZONTAL, 1, getResources().getColor(R.color.gray_light)));
+        mRecyclerView.setAdapter(mB2BBusinessListAdapter);
+
+    }
+
+    @Override
+    protected void initEvents() {
+
+    }
+
+    @Override
+    protected void initDatas() {
+
+    }
+
+    public void onRefresh(List<B2BBusinessListBean> b2BBusinessListBeans) {
+        mB2BBusinessListBeans.clear();
+        mB2BBusinessListBeans.addAll(b2BBusinessListBeans);
+        mB2BBusinessListAdapter.notifyDataSetChanged();
+    }
+
+    public void onLoadMore(List<B2BBusinessListBean> b2BBusinessListBeans) {
+        mB2BBusinessListBeans.addAll(b2BBusinessListBeans);
+        mB2BBusinessListAdapter.notifyDataSetChanged();
+    }
+
+    @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) {
+
+    }
+
+}

+ 65 - 0
app_modular/appworks/src/main/java/com/uas/appworks/fragment/B2BBusinessListFragment2.java

@@ -0,0 +1,65 @@
+package com.uas.appworks.fragment;
+
+import android.support.v7.widget.RecyclerView;
+
+import com.core.base.fragment.BaseMVPFragment;
+import com.uas.appworks.R;
+import com.uas.appworks.presenter.WorkPlatPresenter;
+import com.uas.appworks.view.WorkPlatView;
+
+/**
+ * @author RaoMeng
+ * @describe B2B商务列表fragment
+ * @date 2018/1/15 11:11
+ */
+
+public class B2BBusinessListFragment2 extends BaseMVPFragment<WorkPlatPresenter> implements WorkPlatView {
+
+    private RecyclerView mRecyclerView;
+
+    @Override
+    protected WorkPlatPresenter initPresenter() {
+        return new WorkPlatPresenter();
+    }
+
+    @Override
+    protected int getLayout() {
+        return R.layout.fragment_b2b_list;
+    }
+
+    @Override
+    protected void initViews() {
+        mRecyclerView = $(R.id.b2b_list_rv);
+    }
+
+    @Override
+    protected void initEvents() {
+
+    }
+
+    @Override
+    protected void initDatas() {
+
+    }
+
+    @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) {
+
+    }
+
+}

+ 65 - 0
app_modular/appworks/src/main/java/com/uas/appworks/fragment/B2BBusinessListFragment3.java

@@ -0,0 +1,65 @@
+package com.uas.appworks.fragment;
+
+import android.support.v7.widget.RecyclerView;
+
+import com.core.base.fragment.BaseMVPFragment;
+import com.uas.appworks.R;
+import com.uas.appworks.presenter.WorkPlatPresenter;
+import com.uas.appworks.view.WorkPlatView;
+
+/**
+ * @author RaoMeng
+ * @describe B2B商务列表fragment
+ * @date 2018/1/15 11:11
+ */
+
+public class B2BBusinessListFragment3 extends BaseMVPFragment<WorkPlatPresenter> implements WorkPlatView {
+
+    private RecyclerView mRecyclerView;
+
+    @Override
+    protected WorkPlatPresenter initPresenter() {
+        return new WorkPlatPresenter();
+    }
+
+    @Override
+    protected int getLayout() {
+        return R.layout.fragment_b2b_list;
+    }
+
+    @Override
+    protected void initViews() {
+        mRecyclerView = $(R.id.b2b_list_rv);
+    }
+
+    @Override
+    protected void initEvents() {
+
+    }
+
+    @Override
+    protected void initDatas() {
+
+    }
+
+    @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) {
+
+    }
+
+}

+ 66 - 0
app_modular/appworks/src/main/java/com/uas/appworks/fragment/B2BBusinessListFragment4.java

@@ -0,0 +1,66 @@
+package com.uas.appworks.fragment;
+
+import android.support.v7.widget.RecyclerView;
+
+import com.core.base.fragment.BaseMVPFragment;
+import com.scwang.smartrefresh.layout.api.RefreshLayout;
+import com.uas.appworks.R;
+import com.uas.appworks.presenter.WorkPlatPresenter;
+import com.uas.appworks.view.WorkPlatView;
+
+/**
+ * @author RaoMeng
+ * @describe B2B商务列表fragment
+ * @date 2018/1/15 11:11
+ */
+
+public class B2BBusinessListFragment4 extends BaseMVPFragment<WorkPlatPresenter> implements WorkPlatView {
+
+    private RecyclerView mRecyclerView;
+
+    @Override
+    protected WorkPlatPresenter initPresenter() {
+        return new WorkPlatPresenter();
+    }
+
+    @Override
+    protected int getLayout() {
+        return R.layout.fragment_b2b_list;
+    }
+
+    @Override
+    protected void initViews() {
+        mRecyclerView = $(R.id.b2b_list_rv);
+    }
+
+    @Override
+    protected void initEvents() {
+
+    }
+
+    @Override
+    protected void initDatas() {
+
+    }
+
+    @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) {
+
+    }
+
+}

+ 66 - 0
app_modular/appworks/src/main/java/com/uas/appworks/fragment/B2BBusinessListFragment5.java

@@ -0,0 +1,66 @@
+package com.uas.appworks.fragment;
+
+import android.support.v7.widget.RecyclerView;
+
+import com.core.base.fragment.BaseMVPFragment;
+import com.scwang.smartrefresh.layout.api.RefreshLayout;
+import com.uas.appworks.R;
+import com.uas.appworks.presenter.WorkPlatPresenter;
+import com.uas.appworks.view.WorkPlatView;
+
+/**
+ * @author RaoMeng
+ * @describe B2B商务列表fragment
+ * @date 2018/1/15 11:11
+ */
+
+public class B2BBusinessListFragment5 extends BaseMVPFragment<WorkPlatPresenter> implements WorkPlatView {
+
+    private RecyclerView mRecyclerView;
+
+    @Override
+    protected WorkPlatPresenter initPresenter() {
+        return new WorkPlatPresenter();
+    }
+
+    @Override
+    protected int getLayout() {
+        return R.layout.fragment_b2b_list;
+    }
+
+    @Override
+    protected void initViews() {
+        mRecyclerView = $(R.id.b2b_list_rv);
+    }
+
+    @Override
+    protected void initEvents() {
+
+    }
+
+    @Override
+    protected void initDatas() {
+
+    }
+
+    @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) {
+
+    }
+
+}

+ 18 - 0
app_modular/appworks/src/main/java/com/uas/appworks/model/WorkPlatModel.java

@@ -12,10 +12,12 @@ import com.core.api.wxapi.ApiPlatform;
 import com.core.api.wxapi.ApiUtils;
 import com.core.app.Constants;
 import com.core.utils.CommonUtil;
+import com.core.utils.ToastUtil;
 import com.google.gson.Gson;
 import com.me.network.app.base.HttpCallback;
 import com.me.network.app.base.HttpParams;
 import com.me.network.app.http.HttpRequest;
+import com.uas.appworks.R;
 import com.uas.appworks.model.bean.WorkMenuBean;
 
 import java.util.ArrayList;
@@ -37,6 +39,14 @@ public class WorkPlatModel implements IWorkPlatModel {
         if (what == Constants.LOAD_WORK_MENU_CACHE) {
             loadWorkMenuCache(context, workCallback, what);
         } else {
+            if (!CommonUtil.isNetWorkConnected(context)) {
+                if (workCallback != null) {
+                    workCallback.onFail(what, context.getString(R.string.networks_out));
+                } else {
+                    ToastUtil.showToast(context, R.string.networks_out);
+                }
+                return;
+            }
             String appBaseUrl = null;
             if (ApiUtils.getApiModel() instanceof ApiPlatform) {
                 appBaseUrl = new ApiPlatform().getBaseUrl();
@@ -50,6 +60,14 @@ public class WorkPlatModel implements IWorkPlatModel {
 
     @Override
     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));
+            } else {
+                ToastUtil.showToast(context, R.string.networks_out);
+            }
+            return;
+        }
         String appBaseUrl = CommonUtil.getCityBaseUrl(BaseConfig.getContext());
         HttpRequest.getInstance().sendRequest(appBaseUrl, httpParams, workCallback);
     }

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

@@ -0,0 +1,135 @@
+package com.uas.appworks.model.bean;
+
+import com.chad.library.adapter.base.entity.MultiItemEntity;
+
+/**
+ * @author RaoMeng
+ * @describe
+ * @date 2018/1/14 15:35
+ */
+
+public class B2BBusinessListBean implements MultiItemEntity {
+    public static final int PURCHASE_ORDER_LIST = 2;//客户采购订单
+    public static final int CUSTOMER_INQUIRY_LIST = 3;//客户询价单
+    public static final int PUBLIC_INQUIRY_LIST = 4;//公共询价
+
+    private int mItemType = -1;
+    private String mCompanyName;//公司名称
+    private String mBillDate;//单据日期
+    private String mBillNum;//单据编号
+    private String mMaterialNum;//物料编号
+    private String mMoney;//金额
+    private String mBillState;//单据状态
+    private String mExpiryDate;//截止日期
+    private String mProductName;//产品名称
+    private String mProductModel;//产品型号
+    private String mProductSpecification;//产品规格
+    private String mProductAmount;//产品数量
+    private String mProductBrand;//产品品牌
+
+    @Override
+    public int getItemType() {
+        return mItemType;
+    }
+
+    public void setItemType(int itemType) {
+        mItemType = itemType;
+    }
+
+    public String getCompanyName() {
+        return mCompanyName;
+    }
+
+    public void setCompanyName(String companyName) {
+        mCompanyName = companyName;
+    }
+
+    public String getBillDate() {
+        return mBillDate;
+    }
+
+    public void setBillDate(String billDate) {
+        mBillDate = billDate;
+    }
+
+    public String getBillNum() {
+        return mBillNum;
+    }
+
+    public void setBillNum(String billNum) {
+        mBillNum = billNum;
+    }
+
+    public String getMaterialNum() {
+        return mMaterialNum;
+    }
+
+    public void setMaterialNum(String materialNum) {
+        mMaterialNum = materialNum;
+    }
+
+    public String getMoney() {
+        return mMoney;
+    }
+
+    public void setMoney(String money) {
+        mMoney = money;
+    }
+
+    public String getBillState() {
+        return mBillState;
+    }
+
+    public void setBillState(String billState) {
+        mBillState = billState;
+    }
+
+    public String getExpiryDate() {
+        return mExpiryDate;
+    }
+
+    public void setExpiryDate(String expiryDate) {
+        mExpiryDate = expiryDate;
+    }
+
+    public String getProductName() {
+        return mProductName;
+    }
+
+    public void setProductName(String productName) {
+        mProductName = productName;
+    }
+
+    public String getProductModel() {
+        return mProductModel;
+    }
+
+    public void setProductModel(String productModel) {
+        mProductModel = productModel;
+    }
+
+    public String getProductSpecification() {
+        return mProductSpecification;
+    }
+
+    public void setProductSpecification(String productSpecification) {
+        mProductSpecification = productSpecification;
+    }
+
+    public String getProductAmount() {
+        return mProductAmount;
+    }
+
+    public void setProductAmount(String productAmount) {
+        mProductAmount = productAmount;
+    }
+
+    public String getProductBrand() {
+        return mProductBrand;
+    }
+
+    public void setProductBrand(String productBrand) {
+        mProductBrand = productBrand;
+    }
+
+}

+ 65 - 0
app_modular/appworks/src/main/java/com/uas/appworks/model/bean/B2BCompanyBean.java

@@ -0,0 +1,65 @@
+package com.uas.appworks.model.bean;
+
+import java.io.Serializable;
+
+/**
+ * @author RaoMeng
+ * @describe
+ * @date 2018/1/15 16:36
+ */
+
+public class B2BCompanyBean implements Serializable {
+
+    /**
+     * id : 83573
+     * enuu : 1000001
+     * businessCode : 8888888888
+     * name : 深圳市优软科技有限公司
+     */
+
+    private int id;
+    private String enuu;
+    private String businessCode;
+    private String name;
+    private boolean isSelected;
+
+    public int getId() {
+        return id;
+    }
+
+    public void setId(int id) {
+        this.id = id;
+    }
+
+    public String getEnuu() {
+        return enuu;
+    }
+
+    public void setEnuu(String enuu) {
+        this.enuu = enuu;
+    }
+
+    public String getBusinessCode() {
+        return businessCode;
+    }
+
+    public void setBusinessCode(String businessCode) {
+        this.businessCode = businessCode;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public boolean isSelected() {
+        return isSelected;
+    }
+
+    public void setSelected(boolean selected) {
+        isSelected = selected;
+    }
+}

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

@@ -0,0 +1,28 @@
+package com.uas.appworks.model.bean;
+
+/**
+ * @author RaoMeng
+ * @describe
+ * @date 2018/1/16 16:12
+ */
+
+public class B2BDetailListBean {
+    private String mCaption;
+    private String mValue;
+
+    public String getCaption() {
+        return mCaption;
+    }
+
+    public void setCaption(String caption) {
+        mCaption = caption;
+    }
+
+    public String getValue() {
+        return mValue;
+    }
+
+    public void setValue(String value) {
+        mValue = value;
+    }
+}

BIN
app_modular/appworks/src/main/res/drawable-hdpi/ic_b2b_add.png


BIN
app_modular/appworks/src/main/res/drawable-hdpi/ic_b2b_change_account_checked.png


BIN
app_modular/appworks/src/main/res/drawable-hdpi/ic_b2b_change_account_notice.png


BIN
app_modular/appworks/src/main/res/drawable-hdpi/ic_b2b_change_account_unchecked.png


BIN
app_modular/appworks/src/main/res/drawable-hdpi/ic_b2b_current_company.png


BIN
app_modular/appworks/src/main/res/drawable-hdpi/ic_b2b_customer_inquiry.png


BIN
app_modular/appworks/src/main/res/drawable-hdpi/ic_b2b_delete.png


BIN
app_modular/appworks/src/main/res/drawable-hdpi/ic_b2b_login_notice.png


BIN
app_modular/appworks/src/main/res/drawable-hdpi/ic_b2b_public_inquiry.png


BIN
app_modular/appworks/src/main/res/drawable-hdpi/ic_b2b_purchase_order.png


BIN
app_modular/appworks/src/main/res/drawable-xhdpi/ic_b2b_add.png


BIN
app_modular/appworks/src/main/res/drawable-xhdpi/ic_b2b_change_account_checked.png


BIN
app_modular/appworks/src/main/res/drawable-xhdpi/ic_b2b_change_account_notice.png


BIN
app_modular/appworks/src/main/res/drawable-xhdpi/ic_b2b_change_account_unchecked.png


BIN
app_modular/appworks/src/main/res/drawable-xhdpi/ic_b2b_current_company.png


BIN
app_modular/appworks/src/main/res/drawable-xhdpi/ic_b2b_customer_inquiry.png


BIN
app_modular/appworks/src/main/res/drawable-xhdpi/ic_b2b_delete.png


BIN
app_modular/appworks/src/main/res/drawable-xhdpi/ic_b2b_login_notice.png


BIN
app_modular/appworks/src/main/res/drawable-xhdpi/ic_b2b_public_inquiry.png


BIN
app_modular/appworks/src/main/res/drawable-xhdpi/ic_b2b_purchase_order.png


BIN
app_modular/appworks/src/main/res/drawable-xxhdpi/ic_b2b_add.png


BIN
app_modular/appworks/src/main/res/drawable-xxhdpi/ic_b2b_change_account_checked.png


BIN
app_modular/appworks/src/main/res/drawable-xxhdpi/ic_b2b_change_account_notice.png


BIN
app_modular/appworks/src/main/res/drawable-xxhdpi/ic_b2b_change_account_unchecked.png


BIN
app_modular/appworks/src/main/res/drawable-xxhdpi/ic_b2b_current_company.png


BIN
app_modular/appworks/src/main/res/drawable-xxhdpi/ic_b2b_customer_inquiry.png


BIN
app_modular/appworks/src/main/res/drawable-xxhdpi/ic_b2b_delete.png


BIN
app_modular/appworks/src/main/res/drawable-xxhdpi/ic_b2b_login_notice.png


BIN
app_modular/appworks/src/main/res/drawable-xxhdpi/ic_b2b_public_inquiry.png


BIN
app_modular/appworks/src/main/res/drawable-xxhdpi/ic_b2b_purchase_order.png


+ 8 - 0
app_modular/appworks/src/main/res/drawable/selector_b2b_account.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <item android:drawable="@drawable/ic_b2b_change_account_checked" android:state_checked="true" />
+    <item android:drawable="@drawable/ic_b2b_change_account_unchecked" android:state_checked="false" />
+    <item android:drawable="@drawable/ic_b2b_change_account_unchecked" />
+
+</selector>

+ 6 - 0
app_modular/appworks/src/main/res/drawable/shape_b2b_change_account.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+       android:shape="rectangle">
+
+    <corners android:radius="10dp" />
+</shape>

+ 32 - 0
app_modular/appworks/src/main/res/layout/action_b2b_company.xml

@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout
+    android:id="@+id/b2b_company_action"
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="48dp"
+    android:background="@color/Transpant">
+
+    <ImageView
+        android:id="@+id/b2b_company_back"
+        android:layout_width="24dp"
+        android:layout_height="24dp"
+        android:layout_centerVertical="true"
+        android:src="@drawable/ic_action_back" />
+
+    <com.core.widget.DrawableCenterTextView
+        android:id="@+id/b2b_company_name"
+        android:layout_width="match_parent"
+        android:layout_height="36dp"
+        android:layout_centerInParent="true"
+        android:layout_marginLeft="40dp"
+        android:layout_marginRight="40dp"
+        android:drawableLeft="@drawable/ic_b2b_current_company"
+        android:drawablePadding="6dp"
+        android:gravity="center_vertical"
+        android:padding="6dp"
+        android:textColor="@color/white"
+        android:textSize="16sp"
+        tools:text="深圳市优软科技有限公司" />
+
+</RelativeLayout>

+ 44 - 0
app_modular/appworks/src/main/res/layout/activity_b2b_business_login.xml

@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="#ebe9e9"
+    android:orientation="vertical">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="140dp"
+        android:gravity="center"
+        android:orientation="vertical">
+
+        <ImageView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:src="@drawable/ic_b2b_login_notice" />
+
+        <TextView
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="10dp"
+            android:gravity="center"
+            android:text="@string/please_select_company"
+            android:textColor="@color/black"
+            android:textSize="18sp" />
+
+    </LinearLayout>
+
+    <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:paddingLeft="12dp"
+        android:text="@string/binded_company" />
+
+    <android.support.v7.widget.RecyclerView
+        android:id="@+id/b2b_business_login_company_rv"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_marginTop="6dp"
+        android:overScrollMode="never"
+        android:scrollbars="none" />
+</LinearLayout>

+ 221 - 0
app_modular/appworks/src/main/res/layout/activity_b2b_business_main.xml

@@ -0,0 +1,221 @@
+<?xml version="1.0" encoding="utf-8"?>
+<com.scwang.smartrefresh.layout.SmartRefreshLayout
+    android:id="@+id/b2b_business_main_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:focusable="true"
+    android:focusableInTouchMode="true"
+    app:srlEnableLoadmore="false"
+    app:srlEnablePreviewInEditMode="false">
+
+    <com.scwang.smartrefresh.layout.header.ClassicsHeader
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        app:srlAccentColor="@android:color/darker_gray" />
+
+    <android.support.v4.widget.NestedScrollView
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="vertical">
+
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="8dp"
+                android:background="@color/gray_light" />
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="100dp"
+                android:gravity="center_vertical"
+                android:orientation="horizontal">
+
+                <LinearLayout
+                    android:id="@+id/b2b_business_main_purchase_order_iv"
+                    android:layout_width="0dp"
+                    android:layout_height="match_parent"
+                    android:layout_centerInParent="true"
+                    android:layout_weight="1"
+                    android:gravity="center"
+                    android:orientation="vertical"
+                    android:paddingLeft="8dp"
+                    android:paddingRight="8dp"
+                    android:paddingTop="8dp">
+
+                    <ImageView
+                        android:layout_width="30dp"
+                        android:layout_height="30dp"
+                        android:src="@drawable/ic_b2b_purchase_order" />
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="10dp"
+                        android:ellipsize="end"
+                        android:gravity="center_horizontal"
+                        android:text="@string/str_purchase_order_list"
+                        android:textColor="#000000"
+                        android:textSize="14sp" />
+                </LinearLayout>
+
+                <LinearLayout
+                    android:id="@+id/b2b_business_main_customer_inquiry_iv"
+                    android:layout_width="0dp"
+                    android:layout_height="match_parent"
+                    android:layout_centerInParent="true"
+                    android:layout_weight="1"
+                    android:gravity="center"
+                    android:orientation="vertical"
+                    android:paddingLeft="8dp"
+                    android:paddingRight="8dp"
+                    android:paddingTop="8dp">
+
+                    <ImageView
+                        android:layout_width="30dp"
+                        android:layout_height="30dp"
+                        android:src="@drawable/ic_b2b_customer_inquiry" />
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="10dp"
+                        android:ellipsize="end"
+                        android:gravity="center_horizontal"
+                        android:text="@string/str_customer_inquiry_list"
+                        android:textColor="#000000"
+                        android:textSize="14sp" />
+                </LinearLayout>
+
+                <LinearLayout
+                    android:id="@+id/b2b_business_main_public_inquiry_iv"
+                    android:layout_width="0dp"
+                    android:layout_height="match_parent"
+                    android:layout_centerInParent="true"
+                    android:layout_weight="1"
+                    android:gravity="center"
+                    android:orientation="vertical"
+                    android:paddingLeft="8dp"
+                    android:paddingRight="8dp"
+                    android:paddingTop="8dp">
+
+                    <ImageView
+                        android:layout_width="30dp"
+                        android:layout_height="30dp"
+                        android:src="@drawable/ic_b2b_public_inquiry" />
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="10dp"
+                        android:ellipsize="end"
+                        android:gravity="center_horizontal"
+                        android:text="@string/str_public_inquiry_list"
+                        android:textColor="#000000"
+                        android:textSize="14sp" />
+                </LinearLayout>
+
+            </LinearLayout>
+
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="8dp"
+                android:background="@color/gray_light" />
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:background="@color/b2b_tab_bg"
+                android:padding="8dp">
+
+                <TextView
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_weight="1"
+                    android:text="@string/str_purchase_order_list" />
+
+                <TextView
+                    android:id="@+id/b2b_business_main_purchase_order_all_tv"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/all"
+                    android:textColor="@color/titleBlue" />
+            </LinearLayout>
+
+            <android.support.v7.widget.RecyclerView
+                android:id="@+id/b2b_business_main_purchase_order_rv"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:overScrollMode="never"
+                android:scrollbars="none" />
+
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="8dp"
+                android:background="@color/gray_light" />
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:background="@color/b2b_tab_bg"
+                android:padding="8dp">
+
+                <TextView
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_weight="1"
+                    android:text="@string/str_customer_inquiry_list" />
+
+                <TextView
+                    android:id="@+id/b2b_business_main_customer_inquiry_all_tv"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/all"
+                    android:textColor="@color/titleBlue" />
+            </LinearLayout>
+
+            <android.support.v7.widget.RecyclerView
+                android:id="@+id/b2b_business_main_customer_inquiry_rv"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:overScrollMode="never"
+                android:scrollbars="none" />
+
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="8dp"
+                android:background="@color/gray_light" />
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:background="@color/b2b_tab_bg"
+                android:padding="8dp">
+
+                <TextView
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_weight="1"
+                    android:text="@string/str_public_inquiry_list" />
+
+                <TextView
+                    android:id="@+id/b2b_business_main_public_inquiry_all_tv"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/all"
+                    android:textColor="@color/titleBlue" />
+            </LinearLayout>
+
+            <android.support.v7.widget.RecyclerView
+                android:id="@+id/b2b_business_main_public_inquiry_rv"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:overScrollMode="never"
+                android:scrollbars="none" />
+        </LinearLayout>
+    </android.support.v4.widget.NestedScrollView>
+</com.scwang.smartrefresh.layout.SmartRefreshLayout>

+ 46 - 0
app_modular/appworks/src/main/res/layout/activity_customer_inquiry_detail.xml

@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8"?>
+<ScrollView
+    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">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="vertical">
+
+        <android.support.v7.widget.RecyclerView
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:background="@color/b2b_tab_bg"
+            android:overScrollMode="never"
+            android:scrollbars="none" />
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="46dp"
+            android:gravity="center_vertical"
+            android:orientation="horizontal"
+            android:paddingLeft="12dp">
+
+            <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"
+                android:layout_height="wrap_content"
+                android:layout_weight="1" />
+        </LinearLayout>
+    </LinearLayout>
+</ScrollView>

+ 45 - 0
app_modular/appworks/src/main/res/layout/activity_public_inquiry_detail.xml

@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout
+    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:orientation="vertical">
+
+    <TextView
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:background="@color/b2b_tab_bg"
+        android:padding="12dp"
+        android:text="@string/str_inquiry_information"
+        android:textColor="@color/black"
+        android:textSize="16sp" />
+
+    <android.support.v7.widget.RecyclerView
+        android:id="@+id/public_inquiry_detail_inquiry_information_rv"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:overScrollMode="never"
+        android:scrollbars="none" />
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="8dp"
+        android:background="@color/gray_light" />
+
+    <TextView
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:background="@color/b2b_tab_bg"
+        android:padding="12dp"
+        android:text="@string/str_material_information"
+        android:textColor="@color/black"
+        android:textSize="16sp" />
+
+    <android.support.v7.widget.RecyclerView
+        android:id="@+id/public_inquiry_detail_material_information_rv"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:overScrollMode="never"
+        android:scrollbars="none" />
+</LinearLayout>

+ 48 - 0
app_modular/appworks/src/main/res/layout/activity_tab_viewpager.xml

@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8"?>
+<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"
+    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" />
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:orientation="vertical">
+
+        <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:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        app:srlAccentColor="@android:color/darker_gray" />
+</com.scwang.smartrefresh.layout.SmartRefreshLayout>

+ 9 - 0
app_modular/appworks/src/main/res/layout/fragment_b2b_list.xml

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<android.support.v7.widget.RecyclerView
+    android:id="@+id/b2b_list_rv"
+    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" />

+ 15 - 0
app_modular/appworks/src/main/res/layout/layout_list_b2b_account.xml

@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout
+    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:padding="6dp">
+
+    <CheckBox
+        android:id="@+id/list_b2b_account_cb"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:button="@drawable/selector_b2b_account"
+        tools:text="深圳市优软科技有限公司" />
+</LinearLayout>

+ 19 - 0
app_modular/appworks/src/main/res/layout/layout_list_b2b_company.xml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout
+    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">
+
+    <TextView
+        android:id="@+id/b2b_company_name_tv"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:background="@drawable/selector_me_menu_item_bg"
+        android:padding="12dp"
+        android:textColor="@color/black"
+        android:textSize="16sp"
+        tools:text="深圳市优软科技有限公司">
+
+    </TextView>
+</LinearLayout>

+ 29 - 0
app_modular/appworks/src/main/res/layout/layout_list_b2b_detail.xml

@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout
+    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:gravity="center_vertical"
+    android:orientation="horizontal"
+    android:padding="6dp">
+
+    <TextView
+        android:id="@+id/list_b2b_detail_caption_tv"
+        android:layout_width="0dp"
+        android:layout_height="wrap_content"
+        android:layout_weight="1"
+        android:text="@string/str_product_name"
+        android:textSize="14sp" />
+
+    <TextView
+        android:id="@+id/list_b2b_detail_value_tv"
+        android:layout_width="0dp"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="4dp"
+        android:layout_weight="3"
+        android:textColor="@color/black"
+        android:textSize="14sp"
+        tools:text="2018-01-21" />
+</LinearLayout>

+ 158 - 0
app_modular/appworks/src/main/res/layout/layout_list_customer_inquiry.xml

@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:padding="12dp">
+
+    <LinearLayout
+        android:id="@+id/linearLayout2"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="vertical">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:gravity="center_vertical"
+            android:orientation="horizontal">
+
+            <TextView
+                android:id="@+id/list_customer_inquiry_company_tv"
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:textColor="@color/black"
+                android:textSize="16sp"
+                tools:text="深圳市英唐数码电器有限公司" />
+
+            <TextView
+                android:id="@+id/list_customer_inquiry_bill_date_tv"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:textSize="14sp"
+                tools:text="2018-01-21" />
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="6dp"
+            android:gravity="center_vertical"
+            android:orientation="horizontal">
+
+            <TextView
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:textSize="14sp"
+                android:text="@string/str_bill_num" />
+
+            <TextView
+                android:id="@+id/list_customer_inquiry_bill_num_tv"
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="4dp"
+                android:layout_weight="3"
+                android:textColor="@color/black"
+                android:textSize="14sp"
+                tools:text="2018-01-21" />
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="6dp"
+            android:gravity="center_vertical"
+            android:orientation="horizontal">
+
+            <TextView
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:textSize="14sp"
+                android:text="@string/str_material_num" />
+
+            <TextView
+                android:id="@+id/list_customer_inquiry_material_num_tv"
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="4dp"
+                android:layout_weight="3"
+                android:textColor="@color/black"
+                android:textSize="14sp"
+                tools:text="2018-01-21" />
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="6dp"
+            android:gravity="center_vertical"
+            android:orientation="horizontal">
+
+            <TextView
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:textSize="14sp"
+                android:text="@string/str_expiry_date" />
+
+            <TextView
+                android:id="@+id/list_customer_inquiry_expiry_date_tv"
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="4dp"
+                android:layout_weight="3"
+                android:textColor="@color/red"
+                android:textSize="14sp"
+                android:textStyle="bold"
+                tools:text="1323" />
+        </LinearLayout>
+    </LinearLayout>
+
+    <TextView
+        android:id="@+id/list_customer_inquiry_quotation_adopted_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:paddingTop="4dp"
+        android:paddingBottom="4dp"
+        android:paddingLeft="8dp"
+        android:paddingRight="8dp"
+        android:text="@string/str_quotation_adopted"
+        android:textColor="@color/selector_cancel_text_color" />
+
+    <TextView
+        android:id="@+id/list_customer_inquiry_expired_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:paddingTop="4dp"
+        android:paddingBottom="4dp"
+        android:paddingLeft="8dp"
+        android:paddingRight="8dp"
+        android:text="@string/str_expired"
+        android:textColor="@color/selector_cancel_text_color" />
+
+    <TextView
+        android:id="@+id/list_customer_inquiry_quoted_price_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:paddingTop="4dp"
+        android:paddingBottom="4dp"
+        android:paddingLeft="8dp"
+        android:paddingRight="8dp"
+        android:text="@string/str_quoted_price"
+        android:textColor="@color/selector_cancel_text_color" />
+
+</RelativeLayout>

+ 236 - 0
app_modular/appworks/src/main/res/layout/layout_list_public_inquiry.xml

@@ -0,0 +1,236 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:padding="12dp">
+
+    <LinearLayout
+        android:id="@+id/linearLayout2"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="vertical">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:gravity="center_vertical"
+            android:orientation="horizontal">
+
+            <TextView
+                android:id="@+id/list_public_inquiry_company_tv"
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:textColor="@color/black"
+                android:textSize="16sp"
+                tools:text="深圳市英唐数码电器有限公司" />
+
+            <TextView
+                android:id="@+id/list_public_inquiry_bill_date_tv"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:textSize="14sp"
+                tools:text="2018-01-21" />
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="6dp"
+            android:gravity="center_vertical"
+            android:orientation="horizontal">
+
+            <TextView
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:textSize="14sp"
+                android:text="@string/str_product_name" />
+
+            <TextView
+                android:id="@+id/list_public_inquiry_product_name_tv"
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="4dp"
+                android:layout_weight="3"
+                android:textColor="@color/black"
+                android:textSize="14sp"
+                tools:text="2018-01-21" />
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="6dp"
+            android:gravity="center_vertical"
+            android:orientation="horizontal">
+
+            <TextView
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:textSize="14sp"
+                android:text="@string/str_product_model" />
+
+            <TextView
+                android:id="@+id/list_public_inquiry_product_model_tv"
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="4dp"
+                android:layout_weight="3"
+                android:textColor="@color/black"
+                android:textSize="14sp"
+                tools:text="2018-01-21" />
+        </LinearLayout>
+
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="6dp"
+            android:gravity="center_vertical"
+            android:orientation="horizontal">
+
+            <TextView
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:textSize="14sp"
+                android:text="@string/str_product_specification" />
+
+            <TextView
+                android:id="@+id/list_public_inquiry_product_specification_tv"
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="4dp"
+                android:layout_weight="3"
+                android:textColor="@color/black"
+                android:textSize="14sp"
+                tools:text="2018-01-21" />
+        </LinearLayout>
+
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="6dp"
+            android:gravity="center_vertical"
+            android:orientation="horizontal">
+
+            <TextView
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:textSize="14sp"
+                android:text="@string/str_product_amount" />
+
+            <TextView
+                android:id="@+id/list_public_inquiry_product_amount_tv"
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="4dp"
+                android:layout_weight="3"
+                android:textColor="@color/black"
+                android:textSize="14sp"
+                tools:text="2018-01-21" />
+        </LinearLayout>
+
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="6dp"
+            android:gravity="center_vertical"
+            android:orientation="horizontal">
+
+            <TextView
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:textSize="14sp"
+                android:text="@string/str_product_brand" />
+
+            <TextView
+                android:id="@+id/list_public_inquiry_product_brand_tv"
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="4dp"
+                android:layout_weight="3"
+                android:textColor="@color/black"
+                android:textSize="14sp"
+                tools:text="2018-01-21" />
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="6dp"
+            android:gravity="center_vertical"
+            android:orientation="horizontal">
+
+            <TextView
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:textSize="14sp"
+                android:text="@string/str_expiry_date" />
+
+            <TextView
+                android:id="@+id/list_public_inquiry_expiry_date_tv"
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="4dp"
+                android:layout_weight="3"
+                android:textColor="@color/red"
+                android:textSize="14sp"
+                android:textStyle="bold"
+                tools:text="1323" />
+        </LinearLayout>
+    </LinearLayout>
+
+    <TextView
+        android:id="@+id/list_public_inquiry_offer_quotation_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:paddingTop="4dp"
+        android:paddingBottom="4dp"
+        android:paddingLeft="8dp"
+        android:paddingRight="8dp"
+        android:text="@string/str_offer_quotation"
+        android:textColor="@color/selector_cancel_text_color" />
+
+    <TextView
+        android:id="@+id/list_public_inquiry_expired_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:paddingTop="4dp"
+        android:paddingBottom="4dp"
+        android:paddingLeft="8dp"
+        android:paddingRight="8dp"
+        android:text="@string/str_expired"
+        android:textColor="@color/selector_cancel_text_color" />
+
+    <TextView
+        android:id="@+id/list_public_inquiry_quoted_price_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:paddingTop="4dp"
+        android:paddingBottom="4dp"
+        android:paddingLeft="8dp"
+        android:paddingRight="8dp"
+        android:text="@string/str_quoted_price"
+        android:textColor="@color/selector_cancel_text_color" />
+
+</RelativeLayout>

+ 156 - 0
app_modular/appworks/src/main/res/layout/layout_list_purchase_order.xml

@@ -0,0 +1,156 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:padding="12dp">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="vertical">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:gravity="center_vertical"
+            android:orientation="horizontal">
+
+            <TextView
+                android:id="@+id/list_purchase_order_company_tv"
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:textColor="@color/black"
+                android:textSize="16sp"
+                tools:text="深圳市英唐数码电器有限公司" />
+
+            <TextView
+                android:id="@+id/list_purchase_order_bill_date_tv"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:textSize="14sp"
+                tools:text="2018-01-21" />
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="6dp"
+            android:gravity="center_vertical"
+            android:orientation="horizontal">
+
+            <TextView
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:textSize="14sp"
+                android:text="@string/str_bill_num" />
+
+            <TextView
+                android:id="@+id/list_purchase_order_bill_num_tv"
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="4dp"
+                android:layout_weight="3"
+                android:textColor="@color/black"
+                android:textSize="14sp"
+                tools:text="2018-01-21" />
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="6dp"
+            android:gravity="center_vertical"
+            android:orientation="horizontal">
+
+            <TextView
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:textSize="14sp"
+                android:text="@string/str_material_num" />
+
+            <TextView
+                android:id="@+id/list_purchase_order_material_num_tv"
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="4dp"
+                android:layout_weight="3"
+                android:textColor="@color/black"
+                android:textSize="14sp"
+                tools:text="2018-01-21" />
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="6dp"
+            android:gravity="center_vertical"
+            android:orientation="horizontal">
+
+            <TextView
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:textSize="14sp"
+                android:text="@string/str_money" />
+
+            <TextView
+                android:id="@+id/list_purchase_order_money_tv"
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="4dp"
+                android:layout_weight="3"
+                android:textColor="@color/red"
+                android:textSize="14sp"
+                android:textStyle="bold"
+                tools:text="1323" />
+        </LinearLayout>
+    </LinearLayout>
+
+    <TextView
+        android:id="@+id/list_purchase_order_wait_reply_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:paddingTop="4dp"
+        android:paddingBottom="4dp"
+        android:paddingLeft="8dp"
+        android:paddingRight="8dp"
+        android:text="@string/str_wait_for_reply"
+        android:textColor="@color/selector_cancel_text_color" />
+
+    <TextView
+        android:id="@+id/list_purchase_order_have_replied_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:paddingTop="4dp"
+        android:paddingBottom="4dp"
+        android:paddingLeft="8dp"
+        android:paddingRight="8dp"
+        android:text="@string/str_have_replied"
+        android:textColor="@color/selector_cancel_text_color" />
+
+    <TextView
+        android:id="@+id/list_purchase_order_case_closed_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:paddingTop="4dp"
+        android:paddingBottom="4dp"
+        android:paddingLeft="8dp"
+        android:paddingRight="8dp"
+        android:text="@string/str_case_closed"
+        android:textColor="@color/selector_cancel_text_color" />
+</RelativeLayout>

+ 83 - 0
app_modular/appworks/src/main/res/layout/pop_b2b_change_account.xml

@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@drawable/shape_b2b_change_account"
+    android:orientation="vertical">
+
+    <TextView
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:padding="6dp"
+        android:text="@string/account_bound_following_enterprises"
+        android:textColor="@color/black"
+        android:textSize="16sp" />
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="1dp"
+        android:background="@color/gray_light" />
+
+    <android.support.v7.widget.RecyclerView
+        android:id="@+id/b2b_change_account_rv"
+        android:layout_width="match_parent"
+        android:layout_height="160dp"
+        android:layout_marginTop="10dp"
+        android:layout_marginBottom="4dp"
+        android:overScrollMode="never"
+        android:scrollbars="none" />
+
+    <TextView
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:drawableLeft="@drawable/ic_b2b_change_account_notice"
+        android:padding="6dp"
+        android:layout_marginBottom="10dp"
+        android:text="@string/select_one_company_log_in"
+        android:textColor="@color/blue_seats_num" />
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="1dp"
+        android:background="@color/gray_light" />
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:gravity="center_vertical"
+        android:padding="6dp">
+
+        <View
+            android:layout_width="0dp"
+            android:layout_height="0dp"
+            android:layout_weight="1" />
+
+        <TextView
+            android:id="@+id/b2b_change_account_sure_tv"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_alignParentRight="true"
+            android:background="@drawable/selector_confirm_bg"
+            android:paddingBottom="6dp"
+            android:paddingLeft="12dp"
+            android:paddingRight="12dp"
+            android:paddingTop="6dp"
+            android:text="@string/sure"
+            android:textColor="@color/white" />
+
+        <TextView
+            android:id="@+id/b2b_change_account_cancel_tv"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginLeft="10dp"
+            android:background="@drawable/selector_cancel_bg"
+            android:paddingBottom="6dp"
+            android:paddingLeft="12dp"
+            android:paddingRight="12dp"
+            android:paddingTop="6dp"
+            android:text="@string/cancel"
+            android:textColor="@color/selector_cancel_text_color" />
+
+    </LinearLayout>
+</LinearLayout>

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

@@ -55,4 +55,33 @@
     <string name="obtain_pdf_path">正在获取报表文件资源,请稍候...</string>
     <string name="download_paused">下载已暂停</string>
     <string name="str_reloading">正在加载....</string>
+
+    <!--B2B商务-->
+    <string name="str_purchase_order_list">客户采购订单</string>
+    <string name="str_customer_inquiry_list">客户询价单</string>
+    <string name="str_public_inquiry_list">公共询价</string>
+    <string name="str_bill_num">单号:</string>
+    <string name="str_material_num">物料编号:</string>
+    <string name="str_money">金额:</string>
+    <string name="str_wait_for_reply">待回复</string>
+    <string name="str_have_replied">已回复</string>
+    <string name="str_case_closed">已结案</string>
+    <string name="str_expiry_date">截止日期</string>
+    <string name="str_quotation_adopted">报价已采纳</string>
+    <string name="str_expired">已过期</string>
+    <string name="str_quoted_price">已报价</string>
+    <string name="str_product_name">产品名称</string>
+    <string name="str_product_model">产品型号</string>
+    <string name="str_product_specification">产品规格</string>
+    <string name="str_product_amount">数量</string>
+    <string name="str_product_brand">品牌</string>
+    <string name="str_offer_quotation">我要报价</string>
+    <string name="please_select_company">请选择以下企业登录</string>
+    <string name="binded_company">已绑定企业</string>
+    <string name="str_wait_quoted">待报价</string>
+    <string name="str_adopted">已采纳</string>
+    <string name="account_bound_following_enterprises">您的账号绑定了下列企业</string>
+    <string name="select_one_company_log_in">请选择其中一个企业登录</string>
+    <string name="str_inquiry_information">询价信息</string>
+    <string name="str_material_information">物料信息</string>
 </resources>

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

@@ -54,4 +54,33 @@
     <string name="obtain_pdf_path">正在获取报表文件资源,请稍候...</string>
     <string name="download_paused">下载已暂停</string>
     <string name="str_reloading">正在加载....</string>
+
+    <!--B2B商务-->
+    <string name="str_purchase_order_list">客户采购订单</string>
+    <string name="str_customer_inquiry_list">客户询价单</string>
+    <string name="str_public_inquiry_list">公共询价</string>
+    <string name="str_bill_num">单号:</string>
+    <string name="str_material_num">物料编号:</string>
+    <string name="str_money">金额:</string>
+    <string name="str_wait_for_reply">待回复</string>
+    <string name="str_have_replied">已回复</string>
+    <string name="str_case_closed">已结案</string>
+    <string name="str_expiry_date">截止日期</string>
+    <string name="str_quotation_adopted">报价已采纳</string>
+    <string name="str_expired">已过期</string>
+    <string name="str_quoted_price">已报价</string>
+    <string name="str_product_name">产品名称</string>
+    <string name="str_product_model">产品型号</string>
+    <string name="str_product_specification">产品规格</string>
+    <string name="str_product_amount">数量</string>
+    <string name="str_product_brand">品牌</string>
+    <string name="str_offer_quotation">我要报价</string>
+    <string name="please_select_company">请选择以下企业登录</string>
+    <string name="binded_company">已绑定企业</string>
+    <string name="str_wait_quoted">待报价</string>
+    <string name="str_adopted">已采纳</string>
+    <string name="account_bound_following_enterprises">您的账号绑定了下列企业</string>
+    <string name="select_one_company_log_in">请选择其中一个企业登录</string>
+    <string name="str_inquiry_information">询价信息</string>
+    <string name="str_material_information">物料信息</string>
 </resources>

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

@@ -54,4 +54,33 @@
     <string name="obtain_pdf_path">正在获取报表文件资源,请稍候...</string>
     <string name="download_paused">下载已暂停</string>
     <string name="str_reloading">正在加载....</string>
+
+    <!--B2B商务-->
+    <string name="str_purchase_order_list">客户采购订单</string>
+    <string name="str_customer_inquiry_list">客户询价单</string>
+    <string name="str_public_inquiry_list">公共询价</string>
+    <string name="str_bill_num">单号:</string>
+    <string name="str_material_num">物料编号:</string>
+    <string name="str_money">金额:</string>
+    <string name="str_wait_for_reply">待回复</string>
+    <string name="str_have_replied">已回复</string>
+    <string name="str_case_closed">已结案</string>
+    <string name="str_expiry_date">截止日期</string>
+    <string name="str_quotation_adopted">报价已采纳</string>
+    <string name="str_expired">已过期</string>
+    <string name="str_quoted_price">已报价</string>
+    <string name="str_product_name">产品名称</string>
+    <string name="str_product_model">产品型号</string>
+    <string name="str_product_specification">产品规格</string>
+    <string name="str_product_amount">数量</string>
+    <string name="str_product_brand">品牌</string>
+    <string name="str_offer_quotation">我要报价</string>
+    <string name="please_select_company">请选择以下企业登录</string>
+    <string name="binded_company">已绑定企业</string>
+    <string name="str_wait_quoted">待报价</string>
+    <string name="str_adopted">已采纳</string>
+    <string name="account_bound_following_enterprises">您的账号绑定了下列企业</string>
+    <string name="select_one_company_log_in">请选择其中一个企业登录</string>
+    <string name="str_inquiry_information">询价信息</string>
+    <string name="str_material_information">物料信息</string>
 </resources>

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

@@ -87,5 +87,34 @@
     <string name="more_info"><u>详细信息</u></string>
     <string name="cycle">盘点</string>
 
+    <!--B2B商务-->
+    <string name="str_purchase_order_list">客户采购订单</string>
+    <string name="str_customer_inquiry_list">客户询价单</string>
+    <string name="str_public_inquiry_list">公共询价</string>
+    <string name="str_bill_num">单号:</string>
+    <string name="str_material_num">物料编号:</string>
+    <string name="str_money">金额:</string>
+    <string name="str_wait_for_reply">待回复</string>
+    <string name="str_have_replied">已回复</string>
+    <string name="str_case_closed">已结案</string>
+    <string name="str_expiry_date">截止日期</string>
+    <string name="str_quotation_adopted">报价已采纳</string>
+    <string name="str_expired">已过期</string>
+    <string name="str_quoted_price">已报价</string>
+    <string name="str_product_name">产品名称</string>
+    <string name="str_product_model">产品型号</string>
+    <string name="str_product_specification">产品规格</string>
+    <string name="str_product_amount">数量</string>
+    <string name="str_product_brand">品牌</string>
+    <string name="str_offer_quotation">我要报价</string>
+    <string name="please_select_company">请选择以下企业登录</string>
+    <string name="binded_company">已绑定企业</string>
+    <string name="str_wait_quoted">待报价</string>
+    <string name="str_adopted">已采纳</string>
+    <string name="account_bound_following_enterprises">您的账号绑定了下列企业</string>
+    <string name="select_one_company_log_in">请选择其中一个企业登录</string>
+    <string name="str_inquiry_information">询价信息</string>
+    <string name="str_material_information">物料信息</string>
+
 
 </resources>

+ 6 - 2
version.gradle

@@ -47,7 +47,9 @@ ext {
             BaseRecyclerViewAdapterHelperVersion: '2.9.30',
             addSubUtilsVersion                  : '1.5.0',
             bannerVersion                       : '1.4.10',
-            smartRefreshLayoutVersion           : '1.0.3'
+            smartRefreshLayoutVersion           : '1.0.3',
+            rxJava2Version                      : '2.0.7',
+            rxAndroid2Version                   : '2.0.1'
     ]
 
     deps = [
@@ -100,7 +102,9 @@ ext {
             banner                       : 'com.youth.banner:banner:' + depsVersion.bannerVersion,
             smartRefreshLayout           : 'com.scwang.smartrefresh:SmartRefreshLayout:' + depsVersion.smartRefreshLayoutVersion,
             smartRefreshHeader           : 'com.scwang.smartrefresh:SmartRefreshHeader:' + depsVersion.smartRefreshLayoutVersion,
-            wechatSdk                    : 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+'
+            wechatSdk                    : 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+',
+            rxjava2                      : 'io.reactivex.rxjava2:rxjava:' + depsVersion.rxJava2Version,
+            rxandroid2                   : 'io.reactivex.rxjava2:rxandroid:' + depsVersion.rxAndroid2Version
     ]
 }