guoxin пре 8 година
родитељ
комит
4aadfb9c5b
39 измењених фајлова са 2142 додато и 44 уклоњено
  1. 35 6
      app/src/main/java/com/kfzs/duanduan/fragment/FgtCreditCard.java
  2. 1 1
      app/src/main/java/com/kfzs/duanduan/react/MainTab.java
  3. 18 17
      app/src/main/java/com/sheep/groups/creditcard/ApplyForCreditCardBasicInfoFragment.java
  4. 19 8
      app/src/main/java/com/sheep/groups/creditcard/ApplyForCreditCardDetailsFragment.java
  5. 3 3
      app/src/main/java/com/sheep/groups/creditcard/BasicInfoPresenter.java
  6. 2 1
      app/src/main/java/com/sheep/groups/creditcard/CITICBackOtherInfoActivity.java
  7. 1 1
      app/src/main/java/com/sheep/groups/creditcard/CreditCardDisplayFragment.java
  8. 1 7
      app/src/main/java/com/sheep/groups/creditcard/CreditCardInfosManager.java
  9. 42 0
      app/src/main/java/com/sheep/groups/creditcard/CreditCardKeys.java
  10. 19 0
      app/src/main/java/com/sheep/groups/creditcard/ms/MinShengCreditActivity.java
  11. 98 0
      app/src/main/java/com/sheep/groups/creditcard/zx/CreditCardZXManager.java
  12. 16 0
      app/src/main/java/com/sheep/groups/creditcard/zx/TestActivity.java
  13. 16 0
      app/src/main/java/com/sheep/groups/creditcard/zx/ZXStep1Component.java
  14. 32 0
      app/src/main/java/com/sheep/groups/creditcard/zx/ZXStep1Contact.java
  15. 244 0
      app/src/main/java/com/sheep/groups/creditcard/zx/ZXStep1Presenter.java
  16. 26 0
      app/src/main/java/com/sheep/groups/creditcard/zx/ZXStep22Contact.java
  17. 86 0
      app/src/main/java/com/sheep/groups/creditcard/zx/ZXStep22Presenter.java
  18. 376 0
      app/src/main/java/com/sheep/groups/creditcard/zx/ZhongXinCreditStep1Activity.java
  19. 163 0
      app/src/main/java/com/sheep/groups/creditcard/zx/ZhongXinStep22Fragment.java
  20. BIN
      app/src/main/res/drawable-xhdpi/ic_zx_card.png
  21. BIN
      app/src/main/res/drawable-xxhdpi/bg_btn_credit.png
  22. BIN
      app/src/main/res/drawable-xxhdpi/ic_ms_card.png
  23. BIN
      app/src/main/res/drawable-xxhdpi/ic_ms_logo.png
  24. BIN
      app/src/main/res/drawable-xxhdpi/ic_zx_logo.png
  25. 10 0
      app/src/main/res/drawable/gx_bg_credit_card_white_corner1.xml
  26. 9 0
      app/src/main/res/layout/activity_min_sheng_credit.xml
  27. 10 0
      app/src/main/res/layout/activity_test.xml
  28. 304 0
      app/src/main/res/layout/activity_zhong_xin_credit.xml
  29. 162 0
      app/src/main/res/layout/frg_zx_step22.xml
  30. 100 0
      app/src/main/res/layout/ftg_credit_card.xml
  31. 33 0
      app/src/main/res/values/gx_strings.xml
  32. 59 0
      app/src/main/res/values/styles.xml
  33. 28 0
      kfzslibrary/src/main/java/com/kfzs/libs/convert/HttpObservableTransformer.java
  34. 26 0
      kfzslibrary/src/main/java/com/kfzs/libs/convert/HttpObserver.java
  35. 56 0
      kfzslibrary/src/main/java/com/kfzs/libs/convert/TConverterFactory.java
  36. 97 0
      kfzslibrary/src/main/java/com/kfzs/libs/convert/TResponseConverter.java
  37. 22 0
      kfzslibrary/src/main/java/com/kfzs/libs/convert/TResponseDataFormatException.java
  38. 2 0
      kfzslibrary/src/main/java/com/kfzs/libs/di/http/HttpModule.java
  39. 26 0
      kfzslibrary/src/main/java/com/kfzs/libs/di/http/HttpService.java

+ 35 - 6
app/src/main/java/com/kfzs/duanduan/fragment/FgtCreditCard.java

@@ -2,24 +2,53 @@ package com.kfzs.duanduan.fragment;
 
 import android.content.Intent;
 import android.os.Bundle;
+import android.support.annotation.Nullable;
+import android.util.TypedValue;
+import android.view.View;
 import android.webkit.WebView;
 
 import com.kfzs.duanduan.BaseCompatFragment;
+import com.kfzs.libs.widget.loading.SupportLoadingFragment;
+import com.kfzs.libs.widget.navigation.NavigationBar;
+import com.sheep.groups.creditcard.ms.MinShengCreditActivity;
+import com.sheep.groups.creditcard.zx.ZhongXinCreditStep1Activity;
 import com.sheep.jiuyan.samllsheep.R;
 
+import butterknife.BindView;
+import butterknife.OnClick;
+
 /**
- * 借着玩界面
  * Created by realicing on 2018/04/02.
  * realicing@sina.com
  */
-public class FgtCreditCard extends BaseCompatFragment{
+public class FgtCreditCard extends SupportLoadingFragment{
 
-    private WebView fgt_bp_webview;
+    @BindView(R.id.navigationbar)
+    NavigationBar navigationBar;
 
     @Override
-    protected void initView(Bundle savedInstanceState) {
-//        setContentView(R.layout.fgt_bp);
-//        startActivity(new Intent(getActivity(), ApplyForCreditCardActivity.class));
+    public int layoutResId() {
+        return R.layout.ftg_credit_card;
     }
 
+    @Override
+    public void setupViews(@Nullable Bundle savedInstanceState) {
+
+        navigationBar
+                .titleText("信用卡办理")
+                .titleTextSize(TypedValue.COMPLEX_UNIT_SP,17)
+                .titleTextColor(android.R.color.black)
+                .changeNavigationType(NavigationBar.IOS);
+
+    }
+
+    @OnClick({R.id.btn_ms,R.id.btn_zx})
+    public void onClick(View view){
+        if(R.id.btn_ms == view.getId()){
+            startActivity(new Intent(getActivity(), MinShengCreditActivity.class));
+        }
+        else if(R.id.btn_zx == view.getId()){
+            startActivity(new Intent(getActivity(), ZhongXinCreditStep1Activity.class));
+        }
+    }
 }

+ 1 - 1
app/src/main/java/com/kfzs/duanduan/react/MainTab.java

@@ -86,7 +86,7 @@ public enum MainTab {
     CreditCard(R.string.tab_viewpager_credit_card) {
         @Override
         public Fragment getFragment() {
-            return new ApplyForCardTabFragment();
+            return new FgtCreditCard();
         }
 
         @Override

+ 18 - 17
app/src/main/java/com/sheep/groups/creditcard/ApplyForCreditCardBasicInfoFragment.java

@@ -72,7 +72,7 @@ public class ApplyForCreditCardBasicInfoFragment extends DaggerFragment implemen
     OnNextStepCallback onNextStepCallback;
     private CreditCardDisplayFragment normalCardDisplayFragment;
     private CreditCardDisplayFragment goldCardDisplayFragment;
-    private int curType = CreditCardDisplayFragment.CARD_TYPE_NORMAL;
+    private int curType = CreditCardDisplayFragment.CARD_TYPE_GOLD;
     private CountDownUtil countDownUtil;
 
 //    @Override
@@ -108,7 +108,9 @@ public class ApplyForCreditCardBasicInfoFragment extends DaggerFragment implemen
 
         btnCardNormal.performClick();
         if(normalCardDisplayFragment != null){
-            normalCardDisplayFragment.viewPager.setCurrentItem(0);
+            if(normalCardDisplayFragment.viewPager != null){
+                normalCardDisplayFragment.viewPager.setCurrentItem(0);
+            }
         }
         if(countDownUtil != null){
             countDownUtil.reset();
@@ -134,6 +136,15 @@ public class ApplyForCreditCardBasicInfoFragment extends DaggerFragment implemen
     @Override
     public void setupViews(@Nullable Bundle savedInstanceState) {
 
+        if(normalCardDisplayFragment == null){
+            normalCardDisplayFragment = CreditCardDisplayFragment.newInstance(CreditCardDisplayFragment.CARD_TYPE_NORMAL);
+        }
+
+        if(goldCardDisplayFragment == null){
+            goldCardDisplayFragment = CreditCardDisplayFragment.newInstance(CreditCardDisplayFragment.CARD_TYPE_GOLD);
+        }
+
+        btnCardGold.performClick();
 
         SpannableStringBuilder builder = new SpannableStringBuilder();
         builder.append("点击\"下一步\"意味着您已阅读、知晓并同意遵守中国民生银行信用卡");
@@ -187,16 +198,10 @@ public class ApplyForCreditCardBasicInfoFragment extends DaggerFragment implemen
         });
 
 
-        if(normalCardDisplayFragment == null){
-            normalCardDisplayFragment = CreditCardDisplayFragment.newInstance(CreditCardDisplayFragment.CARD_TYPE_NORMAL);
-        }
 
-        if(goldCardDisplayFragment == null){
-            goldCardDisplayFragment = CreditCardDisplayFragment.newInstance(CreditCardDisplayFragment.CARD_TYPE_GOLD);
-        }
 
-        btnCardNormal.performClick();
 
+        Log.e(TAG, "setupViews: "+getCardId() );
         //页面进入时统计
         Map<String,String> map = new HashMap<>();
         map.put("token", SpUtils.getOpenId(SheepApp.mContext));
@@ -251,7 +256,8 @@ public class ApplyForCreditCardBasicInfoFragment extends DaggerFragment implemen
     }
 
     private String getCardId(){
-        String cardId = String.valueOf(CreditCardDisplayFragment.CARD_NORMAL_PAINT);
+        //默认
+        String cardId = String.valueOf(CreditCardDisplayFragment.CARD_GOLD_PAINT);
         if(CreditCardDisplayFragment.CARD_TYPE_NORMAL == curType){
             cardId =  String.valueOf(normalCardDisplayFragment.getCardDetailType());
         }
@@ -335,6 +341,7 @@ public class ApplyForCreditCardBasicInfoFragment extends DaggerFragment implemen
         switch (view.getId()){
             case R.id.btn_next:
                 clickBtnNext();
+//                goNext();
                 break;
             case R.id.btn_card_normal:
                 selectNormalCard();
@@ -382,11 +389,7 @@ public class ApplyForCreditCardBasicInfoFragment extends DaggerFragment implemen
     private void selectNormalCard(){
         btnCardNormal.setSelected(true);
         btnCardGold.setSelected(false);
-
-
-
         curType = CreditCardDisplayFragment.CARD_TYPE_NORMAL;
-
         getChildFragmentManager()
                 .beginTransaction()
                 .replace(R.id.fl_credit_card_display_container,normalCardDisplayFragment)
@@ -395,10 +398,8 @@ public class ApplyForCreditCardBasicInfoFragment extends DaggerFragment implemen
     private void selectGoldCard(){
         btnCardNormal.setSelected(false);
         btnCardGold.setSelected(true);
-
-
-
         curType = CreditCardDisplayFragment.CARD_TYPE_GOLD;
+        Log.e(TAG, "selectGoldCard: "+curType );
         getChildFragmentManager()
                 .beginTransaction()
                 .replace(R.id.fl_credit_card_display_container,goldCardDisplayFragment)

+ 19 - 8
app/src/main/java/com/sheep/groups/creditcard/ApplyForCreditCardDetailsFragment.java

@@ -149,8 +149,6 @@ public class ApplyForCreditCardDetailsFragment extends DaggerFragment implements
     @Override
     public void setupViews(@Nullable Bundle savedInstanceState) {
 
-
-
         adapterImmediateRelatives = ArrayAdapter.createFromResource(activity, R.array.credit_card_relationship_immediate_relatives_type, R.layout.spinner_text_item);
         spImmediateRelationship.setAdapter(adapterImmediateRelatives);
 
@@ -272,7 +270,7 @@ public class ApplyForCreditCardDetailsFragment extends DaggerFragment implements
         presenter.statisticsDetails(map);
 
 
-//        test();
+        test();
     }
 
 
@@ -293,11 +291,12 @@ public class ApplyForCreditCardDetailsFragment extends DaggerFragment implements
         etIRMobile.setText("18608004678");
         etOtherName.setText("黄明明");
         etOtherMobile.setText("15946587456");
-        tvIdCardExpire.setText("2087/12/11");
-        etCarNo.setText("川A4554DH");
-        etHomeQ.setText("028");
-        etHomePhone.setText("84074663");
-        etQQ.setText("506578835");
+        cbExpire.setChecked(true);
+//        tvIdCardExpire.setText("2087/12/11");
+//        etCarNo.setText("川A4554DH");
+//        etHomeQ.setText("028");
+//        etHomePhone.setText("84074663");
+//        etQQ.setText("506578835");
         cbAgreement.setChecked(true);
 
     }
@@ -395,6 +394,18 @@ public class ApplyForCreditCardDetailsFragment extends DaggerFragment implements
             Toast.makeText(activity,"请填写工作年限",Toast.LENGTH_SHORT).show();
             return;
         }
+        try{
+            int workY = Integer.parseInt(etWorkYear.getText().toString());
+            if(50 <= workY){
+                Toast.makeText(activity,"工作年限不能大于50",Toast.LENGTH_SHORT).show();
+                return;
+            }
+        }
+        catch (Exception e){
+
+        }
+
+
         if(TextUtils.isEmpty(etIRName.getText().toString())){
             Toast.makeText(activity,"请填写直属亲属姓名",Toast.LENGTH_SHORT).show();
             return;

+ 3 - 3
app/src/main/java/com/sheep/groups/creditcard/BasicInfoPresenter.java

@@ -3,6 +3,7 @@ package com.sheep.groups.creditcard;
 import android.util.Log;
 
 import com.kfzs.libs.IView;
+import com.kfzs.libs.convert.HttpObservableTransformer;
 import com.kfzs.libs.di.http.HttpService;
 import com.sheep.gamegroup.model.api.ApiService;
 import com.sheep.jiuyan.samllsheep.SheepApp;
@@ -99,9 +100,8 @@ public class BasicInfoPresenter implements BasicInfoContact.Presenter {
         map.put("value",value);
         map.put("card_id",cardId);
         Log.e(TAG, "commitFormData: "+map.toString() );
-        httpService
-                .commitCreditCardFiled(map)
-                .subscribeOn(Schedulers.io())
+
+        httpService.commitCreditCardFiled(map) .subscribeOn(Schedulers.io())
                 .observeOn(AndroidSchedulers.mainThread())
                 .subscribe(new Observer<String>() {
                     @Override

+ 2 - 1
app/src/main/java/com/sheep/groups/creditcard/CITICBackOtherInfoActivity.java

@@ -10,6 +10,7 @@ import android.widget.TextView;
 import com.kfzs.duanduan.utils.dlg.ViewFindUtils;
 import com.sheep.gamegroup.absBase.BaseActivity;
 import com.sheep.groups.creditcard.fragment.CiticStepThreeFragment;
+import com.sheep.groups.creditcard.zx.ZhongXinStep22Fragment;
 import com.sheep.jiuyan.samllsheep.R;
 
 import java.util.Locale;
@@ -39,7 +40,7 @@ public class CITICBackOtherInfoActivity extends BaseActivity {
 
     }
     private FragmentTabHost mFragmentTabHost;
-    private Class tabFragmentContentArray[] = {CITICBackOtherInfoFragment1.class, CITICBackOtherInfoFragment1.class, CiticStepThreeFragment.class};
+    private Class tabFragmentContentArray[] = {CITICBackOtherInfoFragment1.class, ZhongXinStep22Fragment.class, CiticStepThreeFragment.class};
     /**
      * 初始化的FragmentTabHost
      */

+ 1 - 1
app/src/main/java/com/sheep/groups/creditcard/CreditCardDisplayFragment.java

@@ -42,7 +42,7 @@ public class CreditCardDisplayFragment extends SupportLoadingFragment {
      * 默认值
      */
     private int cardType = CARD_TYPE_NORMAL;
-    private int cardDetailType = CARD_NORMAL_PAINT;
+    private int cardDetailType = CARD_GOLD_PAINT;
 
     @BindView(R.id.vp_credit_card_display)
     ViewPager viewPager;

+ 1 - 7
app/src/main/java/com/sheep/groups/creditcard/CreditCardInfosManager.java

@@ -48,6 +48,7 @@ public class CreditCardInfosManager {
         w_address = "";
         w_tel_1 = "";
         w_tel_2 = "";
+        w_tel_3 = "";
         w_age = "";
         c_d_name = "";
         c_d_mobile = "";
@@ -96,11 +97,4 @@ public class CreditCardInfosManager {
     public boolean is_agree = false;
 
 
-    private Map<String,String> makeMap(){
-        Map<String,String> map = new HashMap<>();
-
-        return map;
-    }
-
-
 }

+ 42 - 0
app/src/main/java/com/sheep/groups/creditcard/CreditCardKeys.java

@@ -0,0 +1,42 @@
+package com.sheep.groups.creditcard;
+
+/**
+ * Created by guoxin on 2018/4/4.
+ * 申请民生信用卡接口字段
+ */
+
+public enum CreditCardKeys {
+    token("账号登录的Token"),
+    card_id("申请信用的卡类型号码"),
+    /**
+     * 基本信息部分
+     */
+    b_name("姓名"), b_mobile("手机号"), b_card("身份证"), b_sms("短信验证码"), ticket("短信验证码接口返回的ticket字段"),
+    /**
+     * 个人信息部分
+     */
+    p_city("住宅地址"), p_address("住宅城市"), p_email("电子邮件"), p_marray("婚姻状况"), p_edu("教育程度"),
+    /**
+     *工作信息部分
+     */
+    w_name("单位名称"), w_city("单位城市"), w_address("单位地址"), w_tel_1("单位电话(区号)"), w_tel_2("单位电话(电话号码)"), w_tel_3("单位电话(分机号)"), w_age("工作年限"),
+    /**
+     * 联系人信息
+     */
+    c_d_name("直属亲属姓名"), c_d_mobile("直属亲属手机号"), c_d_relation("直属亲属关系"), c_o_name("其他联系人姓名"), c_o_mobile("其他联系人手机号"), c_o_relation("其他联系人关系"),
+    /**
+     * 其他信息
+     */
+    o_id_expire("证件有效期"), o_p_number("车牌号码"), o_tel_1("住宅电话(区号)"), o_tel_2("住宅电话(电话号码)"), o_qq("常用QQ号"), is_agree("开通快捷还款");
+
+
+    CreditCardKeys(String desc){
+        this.chineseDesc = desc;
+    }
+
+    private String chineseDesc;
+
+    public String getChineseDesc() {
+        return chineseDesc;
+    }
+}

+ 19 - 0
app/src/main/java/com/sheep/groups/creditcard/ms/MinShengCreditActivity.java

@@ -0,0 +1,19 @@
+package com.sheep.groups.creditcard.ms;
+
+import android.support.v7.app.AppCompatActivity;
+import android.os.Bundle;
+
+import com.sheep.groups.creditcard.ApplyForCardTabFragment;
+import com.sheep.jiuyan.samllsheep.R;
+
+public class MinShengCreditActivity extends AppCompatActivity {
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_min_sheng_credit);
+
+        getSupportFragmentManager().beginTransaction().add(R.id.container,new ApplyForCardTabFragment()).commit();
+
+    }
+}

+ 98 - 0
app/src/main/java/com/sheep/groups/creditcard/zx/CreditCardZXManager.java

@@ -0,0 +1,98 @@
+package com.sheep.groups.creditcard.zx;
+
+/**
+ * Created by guoxin on 2018/4/3.
+ */
+
+public class CreditCardZXManager {
+
+    private static CreditCardZXManager instance;
+
+    private CreditCardZXManager(){
+
+    }
+
+    public static CreditCardZXManager getInstance(){
+        if(instance == null){
+            synchronized (CreditCardZXManager.class){
+                if(instance == null){
+                    instance = new CreditCardZXManager();
+                }
+            }
+        }
+        return instance;
+    }
+
+    public static final String EXPIRE_LONG = "2099/12/31";
+    public static final String MARRY_Y = "Y";
+    public static final String MARRY_N = "N";
+    public static final String MARRY_O = "O";
+
+    public void clearAllDatas(){
+        card_id = "";//卡类型
+        b_name = "";
+        b_mobile = "";
+        b_card = "";//身份证号
+        b_sms = "";
+        ticket = "";
+        p_city = "";
+        p_address = "";
+        p_email = "";
+        p_marray = "";
+        p_edu = "";
+        w_name = "";
+        w_city = "";
+        w_address = "";
+        w_tel_1 = "";
+        w_tel_2 = "";
+        w_tel_3 = "";
+        w_age = "";
+        c_d_name = "";
+        c_d_mobile = "";
+        c_d_relation = "";
+        c_o_name = "";
+        c_o_mobile = "";
+        c_o_relation = "";
+        o_id_expire = "";
+        o_p_number = "";
+        o_tel_1 = "";
+        o_tel_2 = "";
+        o_qq = "";
+        is_agree = false;
+    }
+
+    public String is_invite = "N";//Y,N
+
+    public String card_id;//卡类型
+    public String b_name;
+    public String b_mobile;
+    public String b_card;//身份证号
+    public String b_sms;
+    public String ticket;
+    public String p_city;
+    public String p_address;
+    public String p_email;
+    public String p_marray;
+    public String p_edu;
+    public String w_name;
+    public String w_city;
+    public String w_address;
+    public String w_tel_1;
+    public String w_tel_2;
+    public String w_tel_3;
+    public String w_age;
+    public String c_d_name;
+    public String c_d_mobile;
+    public String c_d_relation;
+    public String c_o_name;
+    public String c_o_mobile;
+    public String c_o_relation;
+    public String o_id_expire;
+    public String o_p_number;
+    public String o_tel_1;
+    public String o_tel_2;
+    public String o_qq;
+    public boolean is_agree = false;
+
+
+}

+ 16 - 0
app/src/main/java/com/sheep/groups/creditcard/zx/TestActivity.java

@@ -0,0 +1,16 @@
+package com.sheep.groups.creditcard.zx;
+
+import android.support.v7.app.AppCompatActivity;
+import android.os.Bundle;
+
+import com.sheep.jiuyan.samllsheep.R;
+
+public class TestActivity extends AppCompatActivity {
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_test);
+        getSupportFragmentManager().beginTransaction().add(R.id.container,new ZhongXinStep22Fragment()).commit();
+    }
+}

+ 16 - 0
app/src/main/java/com/sheep/groups/creditcard/zx/ZXStep1Component.java

@@ -0,0 +1,16 @@
+package com.sheep.groups.creditcard.zx;
+
+import com.kfzs.libs.di.http.HttpComponent;
+import com.kfzs.libs.di.http.HttpScope;
+import com.sheep.groups.creditcard.ApplyForCreditCardBasicInfoFragment;
+
+import dagger.Component;
+
+/**
+ * Created by guoxin on 2018/4/2.
+ */
+@HttpScope
+@Component(dependencies = HttpComponent.class)
+public interface ZXStep1Component {
+    void inject(ZhongXinCreditStep1Activity activity);
+}

+ 32 - 0
app/src/main/java/com/sheep/groups/creditcard/zx/ZXStep1Contact.java

@@ -0,0 +1,32 @@
+package com.sheep.groups.creditcard.zx;
+
+
+import android.graphics.Bitmap;
+
+import com.kfzs.libs.IPresenter;
+import com.kfzs.libs.IView;
+
+import java.util.Map;
+
+/**
+ * Created by guoxin on 2018/3/29.
+ */
+
+ interface ZXStep1Contact {
+
+    interface View extends IView {
+        void showProgress(String msg);
+        void goNext();
+        void showImageCode(Bitmap bitmap);
+    }
+
+    interface Presenter extends IPresenter {
+        void commitFormData(String key, String value, String cardId);
+        void getDynamic(Map<String, String> map);
+        void  statisticsBasics(Map<String, String> map);
+        void  commitStep1(Map<String, String> map);
+        void  getImageCode();
+        void zxBasic(Map<String,String> map);
+    }
+
+}

+ 244 - 0
app/src/main/java/com/sheep/groups/creditcard/zx/ZXStep1Presenter.java

@@ -0,0 +1,244 @@
+package com.sheep.groups.creditcard.zx;
+
+import android.graphics.BitmapFactory;
+import android.util.Log;
+
+import com.kfzs.libs.IView;
+import com.kfzs.libs.di.http.HttpService;
+import com.sheep.jiuyan.samllsheep.SheepApp;
+import com.sheep.jiuyan.samllsheep.utils.SpUtils;
+import org.json.JSONException;
+import org.json.JSONObject;
+import java.util.HashMap;
+import java.util.Map;
+import javax.inject.Inject;
+import rx.Observer;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+/**
+ * Created by guoxin on 2018/4/2.
+ */
+
+public class ZXStep1Presenter implements ZXStep1Contact.Presenter {
+
+    public static final String TAG = "BasicInfoPresenter";
+
+    HttpService httpService;
+    ZXStep1Contact.View view;
+
+    private String ticket;
+
+    public String getTicket() {
+        return ticket;
+    }
+
+    @Inject
+    public ZXStep1Presenter(HttpService service){
+        this.httpService = service;
+    }
+
+    @Override
+    public void attachedView(IView view) {
+        this.view = (ZXStep1Contact.View) view;
+    }
+
+    @Override
+    public void detachedView() {
+        this.view = null;
+    }
+
+    @Override
+    public boolean isContactViewActive() {
+        if (view != null) {
+            return view.isViewActive();
+        }
+        return false;
+    }
+
+
+
+    @Override
+    public void commitFormData(String key, String value, String cardId) {
+//        Map<String,String> map = new HashMap<>();
+//        map.put("token", SpUtils.getOpenId(SheepApp.mContext));
+//        map.put("key",key);
+//        map.put("value",value);
+//        map.put("card_id",cardId);
+//        Log.e(TAG, "commitFormData: "+map.toString() );
+//
+//        httpService.commitCreditCardFiled(map) .subscribeOn(Schedulers.io())
+//                .observeOn(AndroidSchedulers.mainThread())
+//                .subscribe(new Observer<String>() {
+//                    @Override
+//                    public void onCompleted() {
+//
+//                    }
+//
+//                    @Override
+//                    public void onError(Throwable e) {
+//                        Log.e(TAG, "onError: "+e.getMessage() );
+//                    }
+//
+//                    @Override
+//                    public void onNext(String s) {
+//                        Log.e(TAG, "onNext: "+s );
+//                    }
+//                });
+    }
+
+    @Override
+    public void commitStep1(Map<String, String> map) {
+        Log.e(TAG, "commitStep1: "+map.toString() );
+        httpService
+                .commitCreditCardZXCode(map)
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new Observer<String>() {
+                    @Override
+                    public void onCompleted() {
+
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        Log.e(TAG, "onError:commitStep1: "+e.getMessage() );
+                    }
+
+                    @Override
+                    public void onNext(String s) {
+                        Log.e(TAG, "onNext-commitStep1: "+s );
+
+                        try {
+                            JSONObject object = new JSONObject(s);
+                            if(object.getBoolean("success")){
+                                view.goNext();
+                            }
+                            else {
+                                view.showProgress(object.getString("errors"));
+                            }
+
+                        } catch (JSONException e) {
+                            e.printStackTrace();
+                        }
+
+                    }
+                });
+    }
+
+    @Override
+    public void getImageCode() {
+        httpService.commitCreditCardZXImageCode()
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new Observer<String>() {
+                    @Override
+                    public void onCompleted() {
+
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        Log.e(TAG, "onError:getImageCode: "+e.getMessage() );
+                    }
+
+                    @Override
+                    public void onNext(String str) {
+                        byte[] bytes = str.getBytes();
+                        view.showImageCode(BitmapFactory.decodeByteArray(bytes,0,bytes.length));
+                        Log.e(TAG, "onNext: "+ str );
+                    }
+                });
+    }
+
+    @Override
+    public void zxBasic(Map<String, String> map) {
+        Log.e(TAG, "zxBasic: "+map.toString() );
+        httpService.zxBasic(map)
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new Observer<String>() {
+                    @Override
+                    public void onCompleted() {
+
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        Log.e(TAG, "onError:getImageCode: "+e.getMessage() );
+                    }
+
+                    @Override
+                    public void onNext(String str) {
+                        view.goNext();
+                        Log.e(TAG, "onNext: "+ str );
+                    }
+                });
+    }
+
+    @Override
+    public void getDynamic(Map<String, String> map) {
+        Log.e(TAG, "commitCreditCardZXCode: "+map.toString() );
+        httpService
+                .commitCreditCardZXCode(map)
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new Observer<String>() {
+                    @Override
+                    public void onCompleted() {
+
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        Log.e(TAG, "onError: "+e.getMessage() );
+                        view.showProgress(e.getMessage());
+                    }
+
+                    @Override
+                    public void onNext(String s) {
+                        Log.e(TAG, "onNext: "+s );
+                        //保存ticket
+                        try {
+                            JSONObject object = new JSONObject(s);
+                            if(object.getBoolean("success")){
+                                ticket = object.getJSONObject("data").getString("ticket");
+                                view.showProgress(object.getString("验证码发送成功"));
+                            }
+                            else {
+                                view.showProgress(object.getString("errors"));
+                            }
+
+                        } catch (JSONException e) {
+                            e.printStackTrace();
+                        }
+
+                    }
+                });
+    }
+
+    @Override
+    public void statisticsBasics(Map<String,String> map) {
+
+        httpService
+                .commitCreditCardFiled(map)
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new Observer<String>() {
+                    @Override
+                    public void onCompleted() {
+
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        Log.e(TAG, "onError: "+e.getMessage() );
+                    }
+
+                    @Override
+                    public void onNext(String s) {
+                        Log.e(TAG, "onNext: "+s );
+                    }
+                });
+    }
+}

+ 26 - 0
app/src/main/java/com/sheep/groups/creditcard/zx/ZXStep22Contact.java

@@ -0,0 +1,26 @@
+package com.sheep.groups.creditcard.zx;
+
+
+import android.graphics.Bitmap;
+
+import com.kfzs.libs.IPresenter;
+import com.kfzs.libs.IView;
+
+import java.util.Map;
+
+/**
+ * Created by guoxin on 2018/3/29.
+ */
+
+ interface ZXStep22Contact {
+
+    interface View extends IView {
+        void showProgress(String msg);
+        void goNext();
+    }
+
+    interface Presenter extends IPresenter {
+        void zxCompany(Map<String, String> map);
+    }
+
+}

+ 86 - 0
app/src/main/java/com/sheep/groups/creditcard/zx/ZXStep22Presenter.java

@@ -0,0 +1,86 @@
+package com.sheep.groups.creditcard.zx;
+
+import android.graphics.BitmapFactory;
+import android.util.Log;
+
+import com.kfzs.libs.IView;
+import com.kfzs.libs.di.http.HttpService;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.util.Map;
+
+import javax.inject.Inject;
+
+import rx.Observer;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+/**
+ * Created by guoxin on 2018/4/2.
+ */
+
+public class ZXStep22Presenter implements ZXStep22Contact.Presenter {
+
+    public static final String TAG = "BasicInfoPresenter";
+
+    HttpService httpService;
+    ZXStep22Contact.View view;
+
+
+
+    @Inject
+    public ZXStep22Presenter(HttpService service){
+        this.httpService = service;
+    }
+
+    @Override
+    public void attachedView(IView view) {
+        this.view = (ZXStep22Contact.View) view;
+    }
+
+    @Override
+    public void detachedView() {
+        this.view = null;
+    }
+
+    @Override
+    public boolean isContactViewActive() {
+        if (view != null) {
+            return view.isViewActive();
+        }
+        return false;
+    }
+
+
+
+
+
+    @Override
+    public void zxCompany(Map<String, String> map) {
+        Log.e(TAG, "zxBasic: "+map.toString() );
+        httpService.zxCompany(map)
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new Observer<String>() {
+                    @Override
+                    public void onCompleted() {
+
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        Log.e(TAG, "onError:getImageCode: "+e.getMessage() );
+                    }
+
+                    @Override
+                    public void onNext(String str) {
+                        view.goNext();
+                        Log.e(TAG, "onNext: "+ str );
+                    }
+                });
+    }
+
+
+}

+ 376 - 0
app/src/main/java/com/sheep/groups/creditcard/zx/ZhongXinCreditStep1Activity.java

@@ -0,0 +1,376 @@
+package com.sheep.groups.creditcard.zx;
+
+import android.app.DatePickerDialog;
+import android.content.Intent;
+import android.graphics.Bitmap;
+import android.support.v7.app.AppCompatActivity;
+import android.os.Bundle;
+import android.support.v7.widget.AppCompatSpinner;
+import android.text.TextUtils;
+import android.util.Log;
+import android.util.TypedValue;
+import android.view.View;
+import android.widget.AdapterView;
+import android.widget.ArrayAdapter;
+import android.widget.Button;
+import android.widget.CheckBox;
+import android.widget.DatePicker;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.bumptech.glide.Glide;
+import com.kfzs.libs.DaggerActivity;
+import com.kfzs.libs.IPresenter;
+import com.kfzs.libs.IView;
+import com.kfzs.libs.di.http.HttpModule;
+import com.kfzs.libs.widget.CompleteCommitEditText;
+import com.kfzs.libs.widget.navigation.NavigationBar;
+import com.sheep.groups.creditcard.CITICBackOtherInfoActivity;
+import com.sheep.groups.creditcard.CountDownUtil;
+import com.sheep.groups.creditcard.RegexUtils;
+import com.sheep.jiuyan.samllsheep.R;
+import com.sheep.jiuyan.samllsheep.SheepApp;
+
+import java.util.Calendar;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.inject.Inject;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+
+public class ZhongXinCreditStep1Activity extends DaggerActivity implements ZXStep1Contact.View{
+
+    private static final String TAG = "ZhongXinCreditStep1";
+    @Inject
+    ZXStep1Presenter presenter;
+    @BindView(R.id.navigationbar)
+    NavigationBar navigationBar;
+    @BindView(R.id.ll_agreement)
+    LinearLayout llAgreement;
+    @BindView(R.id.cb_agreement)
+    CheckBox cbAgreement;
+    @BindView(R.id.btn_next)
+    Button btnNext;
+    @BindView(R.id.sp_tuijian)
+    AppCompatSpinner spTj;
+    @BindView(R.id.tv_dynamic)
+    TextView tvSms;
+    @BindView(R.id.et_sms)
+    CompleteCommitEditText etSms;
+    @BindView(R.id.iv_image)
+    ImageView ivImage;
+    @BindView(R.id.et_mobile)
+    CompleteCommitEditText etMobile;
+    @BindView(R.id.tv_end_expire)
+    TextView tvEndExpire;
+    @BindView(R.id.tv_start_expire)
+    TextView tvStartExpire;
+    @BindView(R.id.et_fzjg)
+    CompleteCommitEditText etFzjg;
+    @BindView(R.id.et_id_no)
+    CompleteCommitEditText etIdNo;
+    @BindView(R.id.et_name)
+    CompleteCommitEditText etName;
+    @BindView(R.id.et_image)
+    CompleteCommitEditText etImage;
+    private ArrayAdapter<CharSequence> adapter;
+    private CountDownUtil countDownUtil;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_zhong_xin_credit);
+        ButterKnife.bind(this);
+        navigationBar
+                .titleText("个人基本信息")
+                .titleTextSize(TypedValue.COMPLEX_UNIT_SP,17)
+                .titleTextColor(android.R.color.white)
+                .changeNavigationType(NavigationBar.IOS);
+
+
+        llAgreement.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                cbAgreement.setChecked(!cbAgreement.isChecked());
+            }
+        });
+
+        setOnCompleteEdit(etName,"name");
+        setOnCompleteEdit(etIdNo,"id_card");
+
+        setOnCompleteEdit(etFzjg,"issuing_authority");
+        setOnCompleteEdit(etMobile,"mobile");
+
+        setOnCompleteEdit(etImage,"photo_num");
+
+        setOnCompleteEdit(etSms,"code");
+
+
+        adapter = ArrayAdapter.createFromResource(this, R.array.credit_card_zx_tj, R.layout.spinner_text_item);
+//        CreditCardZXManager.getInstance().c_d_relation = adapter.getItem(0).toString();
+        spTj.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
+
+            @Override
+            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
+                String value = (String) adapter.getItem(position);
+                is_invite = value.equals("是") ? "Y" : "N";
+//                presenter.commitFormData("c_d_relation",value,CreditCardZXManager.getInstance().card_id);
+            }
+
+            @Override
+            public void onNothingSelected(AdapterView<?> parent) {
+
+            }
+        });
+        spTj.setAdapter(adapter);
+
+        tvStartExpire.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                showDatePicker(true);
+            }
+        });
+
+        tvEndExpire.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                showDatePicker(false);
+            }
+        });
+
+        ivImage.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                loadImage();
+            }
+        });
+
+        btnNext.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                zxBasic();
+//            startActivity(new Intent(ZhongXinCreditStep1Activity.this,CITICBackOtherInfoActivity.class));
+            }
+        });
+
+        tvSms.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                sendDynamic();
+            }
+        });
+
+        test();
+    }
+    private String is_invite = "N";
+    private void zxBasic(){
+        if(TextUtils.isEmpty(etName.getText().toString())){
+            Toast.makeText(this,"请输入姓名",Toast.LENGTH_SHORT).show();
+            return;
+        }
+
+
+        if(TextUtils.isEmpty(etMobile.getText().toString())){
+            Toast.makeText(this,"请输入手机号",Toast.LENGTH_SHORT).show();
+            return;
+        }
+        if(TextUtils.isEmpty(etIdNo.getText().toString())){
+            Toast.makeText(this,"请输入身份证号",Toast.LENGTH_SHORT).show();
+            return;
+        }
+        if(TextUtils.isEmpty(etSms.getText().toString())){
+            Toast.makeText(this,"请输入验证码",Toast.LENGTH_SHORT).show();
+            return;
+        }
+
+
+
+        Map<String,String> map = new HashMap<>();
+        map.put("name",etName.getText().toString());
+        map.put("mobile",etMobile.getText().toString());
+        map.put("id_card",etIdNo.getText().toString());
+        map.put("code",etSms.getText().toString());
+
+        map.put("is_invite",is_invite);
+
+        if(!TextUtils.isEmpty(etFzjg.getText().toString())){
+            map.put("issuing_authority",etFzjg.getText().toString());
+        }
+
+        if(!TextUtils.isEmpty(etFzjg.getText().toString())){
+            map.put("issuing_authority",etFzjg.getText().toString());
+        }
+
+        if(!TextUtils.isEmpty(tvStartExpire.getText().toString())){
+            map.put("id_date_from",etFzjg.getText().toString());
+        }
+
+        if(!TextUtils.isEmpty(tvEndExpire.getText().toString())){
+            map.put("id_date_end",etFzjg.getText().toString());
+        }
+
+        presenter.zxBasic(map);
+    }
+
+    private void test(){
+        etName.setText("郭鑫");
+        etIdNo.setText("511023198811029192");
+        etMobile.setText("18608003614");
+    }
+
+    private void sendDynamic(){
+
+        if(TextUtils.isEmpty(etName.getText().toString())){
+            Toast.makeText(this,"请填写姓名",Toast.LENGTH_SHORT).show();
+            return;
+        }
+
+        if(TextUtils.isEmpty(etIdNo.getText().toString())){
+            Toast.makeText(this,"请填写身份证号",Toast.LENGTH_SHORT).show();
+            return;
+        }
+
+        if(!RegexUtils.isIDCard18(etIdNo.getText().toString())){
+            Toast.makeText(this,"身份证号不正确",Toast.LENGTH_SHORT).show();
+            return;
+        }
+
+//        if(TextUtils.isEmpty(etFzjg.getText().toString())){
+//            Toast.makeText(this,"请填写发证机关",Toast.LENGTH_SHORT).show();
+//            return;
+//        }
+//
+//        if(TextUtils.isEmpty(tvStartExpire.getText().toString())){
+//            Toast.makeText(this,"请选择有效期(起)",Toast.LENGTH_SHORT).show();
+//            return;
+//        }
+//
+//        if(TextUtils.isEmpty(tvEndExpire.getText().toString())){
+//            Toast.makeText(this,"请选择有效期(止)",Toast.LENGTH_SHORT).show();
+//            return;
+//        }
+
+        if(TextUtils.isEmpty(etImage.getText().toString())){
+            Toast.makeText(this,"请输入图形验证码",Toast.LENGTH_SHORT).show();
+            return;
+        }
+
+        if(!RegexUtils.isMobileSimple(etMobile.getText().toString())){
+            Toast.makeText(this,"手机号不正确",Toast.LENGTH_SHORT).show();
+            return;
+        }
+
+
+        Map<String,String> map = new HashMap<>();
+        map.put("name",etName.getText().toString());
+        map.put("mobile",etMobile.getText().toString());
+        map.put("id_card",etIdNo.getText().toString());
+        map.put("photo_num",etImage.getText().toString());
+
+        Log.e(TAG, "sendDynamic: "+map.toString());
+        presenter.getDynamic(map);
+        //倒计时60000ms
+        //不同状态字体颜色
+        //倒计时60000ms
+    //不同状态字体颜色
+        countDownUtil = new CountDownUtil(tvSms)
+                .setCountDownMillis(60_000L)//倒计时60000ms
+                .setCountDownColor(R.color.credit_blue_color,R.color.credit_blue_color)//不同状态字体颜色
+                .start();
+    }
+
+    private void loadImage(){
+        presenter.getImageCode();
+//        Glide.with(this).download(HttpModule.BASE_URL + "credits/ecitic/img_code").into(ivImage);
+    }
+
+    private void showDatePicker(final boolean start){
+        // 获得日历对象
+        Calendar c = Calendar.getInstance();
+        // 获取当前年份
+        int year = c.get(Calendar.YEAR);
+        // 获取当前月份
+        int monthOfYear = c.get(Calendar.MONTH);
+        // 获取当前月份的天数
+        int dayOfMonth = c.get(Calendar.DAY_OF_MONTH);
+
+        new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
+            @Override
+            public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
+                String expire = year + "/" + month + "/" + dayOfMonth;
+                if(start){
+                    tvStartExpire.setText(expire);
+                    CreditCardZXManager.getInstance().o_id_expire = expire;
+                    presenter.commitFormData("o_id_expire",expire,CreditCardZXManager.getInstance().card_id);
+                }
+                else {
+                    tvEndExpire.setText(expire);
+                    CreditCardZXManager.getInstance().o_id_expire = expire;
+                    presenter.commitFormData("o_id_expire",expire,CreditCardZXManager.getInstance().card_id);
+                }
+
+            }
+        },year,monthOfYear,dayOfMonth).show();
+
+    }
+
+    @Override
+    public IPresenter currentPresenter() {
+        return presenter;
+    }
+
+    @Override
+    public IView currentIView() {
+        return this;
+    }
+
+    @Override
+    public void setupDaggerComponent() {
+
+        DaggerZXStep1Component.builder().httpComponent(SheepApp.getInstance().getHttpComponent()).build().inject(this);
+    }
+
+    @Override
+    public boolean isViewActive() {
+        return isFinishing();
+    }
+
+    @Override
+    public void showProgress(String msg) {
+
+    }
+
+    @Override
+    public void goNext() {
+
+        startActivity(new Intent(ZhongXinCreditStep1Activity.this,CITICBackOtherInfoActivity.class));
+
+    }
+
+    @Override
+    public void showImageCode(Bitmap bitmap) {
+        ivImage.setImageBitmap(bitmap);
+    }
+
+    private void setOnCompleteEdit(final CompleteCommitEditText et, final String key){
+        et.setOnCompleteEditListener(new CompleteCommitEditText.OnCompleteEditListener() {
+            @Override
+            public void onCompleteEdit(String text) {
+                presenter.commitFormData(key,et.getText().toString(), CreditCardZXManager.getInstance().card_id);
+            }
+        });
+    }
+
+    private void setOnCompleteEditDouble(final CompleteCommitEditText et,final CompleteCommitEditText etQ, final String key){
+        et.setOnCompleteEditListener(new CompleteCommitEditText.OnCompleteEditListener() {
+            @Override
+            public void onCompleteEdit(String text) {
+                presenter.commitFormData(key,etQ.getText().toString()+et.getText().toString(),CreditCardZXManager.getInstance().card_id);
+            }
+        });
+    }
+}

+ 163 - 0
app/src/main/java/com/sheep/groups/creditcard/zx/ZhongXinStep22Fragment.java

@@ -0,0 +1,163 @@
+package com.sheep.groups.creditcard.zx;
+
+import android.os.Bundle;
+import android.support.annotation.Nullable;
+import android.support.v7.widget.AppCompatSpinner;
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.AdapterView;
+import android.widget.ArrayAdapter;
+import android.widget.Button;
+import android.widget.Toast;
+
+import com.kfzs.libs.DaggerFragment;
+import com.kfzs.libs.IPresenter;
+import com.kfzs.libs.IView;
+import com.kfzs.libs.widget.CompleteCommitEditText;
+import com.sheep.jiuyan.samllsheep.R;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.inject.Inject;
+
+import butterknife.BindView;
+
+/**
+ * Created by guoxin on 2018/4/4.
+ */
+
+public class ZhongXinStep22Fragment extends DaggerFragment implements ZXStep22Contact.View{
+
+    @BindView(R.id.et_name)
+    CompleteCommitEditText etName;
+    @BindView(R.id.et_area)
+    CompleteCommitEditText etArea;
+    @BindView(R.id.et_city)
+    CompleteCommitEditText etCity;
+    @BindView(R.id.et_provence)
+    CompleteCommitEditText etProvence;
+    @BindView(R.id.et_tel_no)
+    CompleteCommitEditText etTelNo;
+    @BindView(R.id.et_tel_q)
+    CompleteCommitEditText etTelQ;
+
+    @BindView(R.id.sp_gwxz)
+    AppCompatSpinner spGwxz;
+    @BindView(R.id.sp_dwxz)
+    AppCompatSpinner spDwxz;
+    private ArrayAdapter<CharSequence> dwxzAdapter;
+    private ArrayAdapter<CharSequence> gwxzAdapter;
+
+    @BindView(R.id.btn_next)
+    Button btnNext;
+
+    @Inject
+    ZXStep22Presenter presenter;
+
+    @Override
+    public void setupDaggerComponent() {
+
+    }
+
+    @Override
+    public IPresenter currentPresenter() {
+        return presenter;
+    }
+
+    @Override
+    public IView currentIView() {
+        return this;
+    }
+
+    @Override
+    public int layoutResId() {
+        return R.layout.frg_zx_step22;
+    }
+
+    @Override
+    public void setupViews(@Nullable Bundle savedInstanceState) {
+
+        dwxzAdapter = ArrayAdapter.createFromResource(getActivity(), R.array.credit_card_zx_dwxz, R.layout.spinner_text_item);
+        gwxzAdapter = ArrayAdapter.createFromResource(getActivity(), R.array.credit_card_zx_gwxz, R.layout.spinner_text_item);
+        spDwxz.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
+            @Override
+            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
+                String value = (String) dwxzAdapter.getItem(position);
+            }
+
+            @Override
+            public void onNothingSelected(AdapterView<?> parent) {
+
+            }
+        });
+        spDwxz.setAdapter(dwxzAdapter);
+        spGwxz.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
+            @Override
+            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
+                String value = (String) gwxzAdapter.getItem(position);
+            }
+
+            @Override
+            public void onNothingSelected(AdapterView<?> parent) {
+
+            }
+        });
+        spGwxz.setAdapter(gwxzAdapter);
+
+        btnNext.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                zxCompany();
+            }
+        });
+
+    }
+
+    private void zxCompany(){
+
+//        if(TextUtils.isEmpty(etName.getText().toString())){
+//            Toast.makeText(this,"请输入姓名",Toast.LENGTH_SHORT).show();
+//            return;
+//        }
+//
+//
+//        if(TextUtils.isEmpty(etMobile.getText().toString())){
+//            Toast.makeText(this,"请输入手机号",Toast.LENGTH_SHORT).show();
+//            return;
+//        }
+//        if(TextUtils.isEmpty(etIdNo.getText().toString())){
+//            Toast.makeText(this,"请输入身份证号",Toast.LENGTH_SHORT).show();
+//            return;
+//        }
+//        if(TextUtils.isEmpty(etSms.getText().toString())){
+//            Toast.makeText(this,"请输入验证码",Toast.LENGTH_SHORT).show();
+//            return;
+//        }
+
+
+
+//        Map<String,String> map = new HashMap<>();
+//        map.put("name",etName.getText().toString());
+//        map.put("mobile",etMobile.getText().toString());
+//        map.put("id_card",etIdNo.getText().toString());
+//        map.put("code",etSms.getText().toString());
+
+
+    }
+
+    @Override
+    public boolean isViewActive() {
+        return isAdded();
+    }
+
+    @Override
+    public void showProgress(String msg) {
+
+    }
+
+    @Override
+    public void goNext() {
+
+    }
+}

BIN
app/src/main/res/drawable-xhdpi/ic_zx_card.png


BIN
app/src/main/res/drawable-xxhdpi/bg_btn_credit.png


BIN
app/src/main/res/drawable-xxhdpi/ic_ms_card.png


BIN
app/src/main/res/drawable-xxhdpi/ic_ms_logo.png


BIN
app/src/main/res/drawable-xxhdpi/ic_zx_logo.png


+ 10 - 0
app/src/main/res/drawable/gx_bg_credit_card_white_corner1.xml

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

+ 9 - 0
app/src/main/res/layout/activity_min_sheng_credit.xml

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<FrameLayout 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="match_parent"
+    android:id="@+id/container"
+    tools:context="com.sheep.groups.creditcard.ms.MinShengCreditActivity"/>
+

+ 10 - 0
app/src/main/res/layout/activity_test.xml

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<FrameLayout 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="match_parent"
+    android:id="@+id/container"
+    tools:context="com.sheep.groups.creditcard.zx.TestActivity">
+
+</FrameLayout>

+ 304 - 0
app/src/main/res/layout/activity_zhong_xin_credit.xml

@@ -0,0 +1,304 @@
+<?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:background="#f0f0f0"
+    android:orientation="vertical">
+
+
+    <com.kfzs.libs.widget.navigation.NavigationBar
+        android:id="@+id/navigationbar"
+        android:layout_width="match_parent"
+        android:layout_height="45dp"
+        android:background="#d40004" />
+
+    <ScrollView
+        android:layout_width="match_parent"
+        android:layout_height="0dp"
+        android:layout_weight="1">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="0dp"
+            android:layout_weight="1"
+            android:orientation="vertical"
+            android:paddingTop="14dp"
+            android:paddingBottom="14dp"
+            >
+
+            <TextView
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:background="@drawable/gx_bg_credit_card_white_corner"
+                android:padding="10dp"
+                android:layout_marginRight="10dp"
+                android:layout_marginLeft="10dp"
+                android:text="@string/ms_top_str" />
+
+            <TextView
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:text="带'*'为必填项,其他为非必填项"
+                android:layout_marginRight="10dp"
+                android:layout_marginLeft="10dp"
+                android:padding="10dp"
+                android:textSize="11sp" />
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="vertical"
+                android:padding="10dp">
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:orientation="vertical"
+                    android:padding="10dp"
+                    android:background="@drawable/gx_bg_credit_card_white_corner"
+                    >
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="*选择类型" />
+
+                    <ImageView
+                        android:layout_width="144dp"
+                        android:layout_height="90dp"
+                        android:layout_centerInParent="true"
+                        android:src="@drawable/ic_zx_card" />
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="中信易卡(金卡)" />
+
+                </LinearLayout>
+
+                <LinearLayout style="@style/creditCardInputItemStyle"
+                    android:background="@drawable/gx_bg_credit_card_white_corner1"
+                    android:layout_marginTop="16dp"
+                    android:paddingRight="10dp"
+                    android:paddingLeft="10dp"
+                    android:layout_marginBottom="16dp"
+                    >
+
+                    <TextView
+                        style="@style/creditCardInputItemTitleStyle1"
+                        android:text="*中文姓名:	 " />
+
+                    <com.kfzs.libs.widget.CompleteCommitEditText
+                        android:id="@+id/et_name"
+                        style="@style/creditCardInputItemEtStyle"
+                        android:hint="请输入中文名字" />
+
+                </LinearLayout>
+
+                <!--<LinearLayout style="@style/creditCardInputItemStyle"-->
+                    <!--android:background="@drawable/gx_bg_credit_card_white_corner1"-->
+                    <!--android:layout_marginTop="16dp"-->
+                    <!--android:layout_marginBottom="16dp"-->
+                    <!--android:paddingRight="10dp"-->
+                    <!--android:paddingLeft="10dp"-->
+                    <!--&gt;-->
+
+                    <!--<TextView-->
+                        <!--style="@style/creditCardInputItemTitleStyle1"-->
+                        <!--android:text="*姓名拼音:	" />-->
+
+                    <!--<com.kfzs.libs.widget.CompleteCommitEditText-->
+                        <!--android:id="@+id/et_"-->
+                        <!--style="@style/creditCardInputItemEtStyle"-->
+                        <!--android:hint="请输入" />-->
+
+                <!--</LinearLayout>-->
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:orientation="vertical"
+                    android:padding="10dp"
+                    android:background="@drawable/gx_bg_credit_card_white_corner"
+                    >
+
+                    <LinearLayout style="@style/creditCardInputItemStyle">
+
+                        <TextView
+                            style="@style/creditCardInputItemTitleStyle1"
+                            android:text="*身份证号:" />
+
+                        <com.kfzs.libs.widget.CompleteCommitEditText
+                            android:id="@+id/et_id_no"
+                            style="@style/creditCardInputItemEtStyle"
+                            android:hint="请输入身份证号" />
+
+                    </LinearLayout>
+
+                    <LinearLayout style="@style/creditCardInputItemStyle">
+
+                        <TextView
+                            style="@style/creditCardInputItemTitleStyle1"
+                            android:text="证件发证机关:" />
+
+                        <com.kfzs.libs.widget.CompleteCommitEditText
+                            android:id="@+id/et_fzjg"
+                            style="@style/creditCardInputItemEtStyle"
+                            android:hint="请输入发证机关" />
+
+                    </LinearLayout>
+
+                    <LinearLayout style="@style/creditCardInputItemStyle">
+
+                        <TextView
+                            style="@style/creditCardInputItemTitleStyle1"
+                            android:text="有效期(起):" />
+
+                        <TextView
+                            android:id="@+id/tv_start_expire"
+                            style="@style/creditCardInputItemEtStyle"
+                            android:hint="请选择" />
+
+                    </LinearLayout>
+
+                    <LinearLayout style="@style/creditCardInputItemStyle">
+
+                        <TextView
+                            style="@style/creditCardInputItemTitleStyle1"
+                            android:text="有效期(止):" />
+
+                        <TextView
+                            android:id="@+id/tv_end_expire"
+                            style="@style/creditCardInputItemEtStyle"
+                            android:hint="请选择" />
+
+                    </LinearLayout>
+
+                    <LinearLayout style="@style/creditCardInputItemStyle">
+
+                        <TextView
+                            style="@style/creditCardInputItemTitleStyle1"
+                            android:text="*手机号码:	" />
+
+                        <com.kfzs.libs.widget.CompleteCommitEditText
+                            android:id="@+id/et_mobile"
+                            style="@style/creditCardInputItemEtStyle"
+                            android:hint="请输入手机号" />
+
+                    </LinearLayout>
+
+                    <LinearLayout style="@style/creditCardInputItemStyle">
+
+                        <TextView
+                            style="@style/creditCardInputItemTitleStyle1"
+                            android:text="*图形验证码:" />
+
+                        <com.kfzs.libs.widget.CompleteCommitEditText
+                            android:id="@+id/et_image"
+                            style="@style/creditCardInputItemEtStyle"
+                            android:hint="请输入图形验证码" />
+
+                        <ImageView
+                            android:id="@+id/iv_image"
+                            android:layout_width="80dp"
+                            android:layout_height="match_parent"
+                            />
+
+                    </LinearLayout>
+
+                </LinearLayout>
+
+                <LinearLayout style="@style/creditCardInputItemStyle"
+                    android:background="@drawable/gx_bg_credit_card_white_corner1"
+                    android:paddingRight="10dp"
+                    android:paddingLeft="10dp"
+                    android:layout_marginTop="16dp"
+                    android:layout_marginBottom="16dp"
+                    >
+
+                    <TextView
+                        style="@style/creditCardInputItemTitleStyle1"
+                        android:text="*手机动态码:" />
+
+                    <com.kfzs.libs.widget.CompleteCommitEditText
+                        android:id="@+id/et_sms"
+                        style="@style/creditCardInputItemEtStyle"
+                        android:hint="请输入验证码" />
+
+                    <TextView
+                        android:id="@+id/tv_dynamic"
+                        style="@style/creditCardInputItemDynamicStyle"
+                        android:text="请点击重新获取验证码"
+                        android:gravity="left"
+                        />
+
+                </LinearLayout>
+
+                <LinearLayout style="@style/creditCardInputItemStyle"
+                    android:background="@drawable/gx_bg_credit_card_white_corner1"
+                    android:paddingRight="10dp"
+                    android:paddingLeft="10dp"
+                    android:layout_marginBottom="16dp"
+                    >
+
+                    <TextView
+                        style="@style/creditCardInputItemTitleStyle1"
+                        android:text="是否他人推荐:" />
+
+                    <android.support.v7.widget.AppCompatSpinner
+                        android:id="@+id/sp_tuijian"
+                        style="@style/creditCardInputItemSpinnerStyle"
+                        />
+
+                </LinearLayout>
+            </LinearLayout>
+            <LinearLayout
+                android:id="@+id/ll_agreement"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="10dp"
+                android:layout_marginBottom="10dp"
+                >
+                <CheckBox
+                    android:id="@+id/cb_agreement"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:enabled="false"
+                    android:layout_gravity="center_vertical"
+                    android:layout_marginLeft="12dp"
+                    android:clickable="false"
+                    android:checked="true"
+                    />
+
+                <TextView
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_weight="1"
+                    android:layout_marginLeft="15dp"
+                    android:text="@string/ms_bottom_str"
+                    />
+
+            </LinearLayout>
+
+            <Button
+                android:id="@+id/btn_next"
+                android:layout_width="match_parent"
+                android:layout_height="50dp"
+                android:textColor="@android:color/white"
+                android:layout_marginLeft="12dp"
+                android:layout_marginRight="12dp"
+                android:layout_marginBottom="16dp"
+                android:textSize="15sp"
+                android:text="下一步>"
+                android:background="#3598fe"
+                />
+            <TextView
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:text="中信银行版权所有 京ICP证030779-1号"
+                android:gravity="center"
+                android:textSize="10sp"
+                />
+
+        </LinearLayout>
+    </ScrollView>
+</LinearLayout>

+ 162 - 0
app/src/main/res/layout/frg_zx_step22.xml

@@ -0,0 +1,162 @@
+<?xml version="1.0" encoding="utf-8"?>
+<ScrollView  xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+<LinearLayout
+   android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    android:padding="16dp"
+    >
+
+    <TextView
+        android:id="@+id/citic_first"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="带'*'为必填项,其他为非必填项"
+        android:textColor="#FA7200"
+        android:padding="10dp"
+        android:textSize="12sp" />
+
+    <LinearLayout style="@style/creditCardInputItemStyle"
+        android:background="@android:color/white"
+        android:paddingRight="10dp"
+        android:paddingLeft="10dp"
+        >
+
+        <TextView
+            style="@style/creditCardInputItemTitleStyle1"
+            android:text="*单位全称:	 " />
+
+        <com.kfzs.libs.widget.CompleteCommitEditText
+            android:id="@+id/et_name"
+            style="@style/creditCardInputItemEtStyle"
+            android:hint="请填写单位全称" />
+
+    </LinearLayout>
+    <LinearLayout style="@style/creditCardInputItemStyle"
+        android:background="@android:color/white"
+        android:paddingRight="10dp"
+        android:paddingLeft="10dp"
+        >
+
+        <TextView
+            style="@style/creditCardInputItemTitleStyle1"
+            android:text="单位性质:" />
+
+        <android.support.v7.widget.AppCompatSpinner
+            android:id="@+id/sp_dwxz"
+            style="@style/creditCardInputItemSpinnerStyle"
+            />
+
+    </LinearLayout>
+    <LinearLayout style="@style/creditCardInputItemStyle"
+        android:background="@android:color/white"
+        android:paddingRight="10dp"
+        android:paddingLeft="10dp"
+        >
+
+        <TextView
+            style="@style/creditCardInputItemTitleStyle1"
+            android:text="岗位性质:" />
+
+        <android.support.v7.widget.AppCompatSpinner
+            android:id="@+id/sp_gwxz"
+            style="@style/creditCardInputItemSpinnerStyle"
+            />
+
+    </LinearLayout>
+
+    <TextView
+        style="@style/creditCardInputItemTitleStyle1"
+        android:textSize="15sp"
+        android:layout_marginTop="16dp"
+        android:layout_marginBottom="16dp"
+        android:layout_width="match_parent"
+        android:text="*填写单位信息:" />
+
+    <LinearLayout style="@style/creditCardInputItemStyle"
+        android:background="@android:color/white"
+        android:paddingRight="10dp"
+        android:paddingLeft="10dp"
+        >
+
+        <com.kfzs.libs.widget.CompleteCommitEditText
+            android:id="@+id/et_provence"
+            style="@style/creditCardInputItemEtStyle"
+            android:hint="省份" />
+        <com.kfzs.libs.widget.CompleteCommitEditText
+            android:id="@+id/et_city"
+            style="@style/creditCardInputItemEtStyle"
+            android:hint="城市" />
+
+        <com.kfzs.libs.widget.CompleteCommitEditText
+            android:id="@+id/et_area"
+            style="@style/creditCardInputItemEtStyle"
+            android:hint="区/县" />
+
+    </LinearLayout>
+
+    <LinearLayout style="@style/creditCardInputItemStyle"
+        android:background="@android:color/white"
+        android:paddingRight="10dp"
+        android:paddingLeft="10dp"
+        >
+
+        <TextView
+            style="@style/creditCardInputItemTitleStyle1"
+            android:text="*单位详细地址:	 " />
+
+        <com.kfzs.libs.widget.CompleteCommitEditText
+            android:id="@+id/et_company_address"
+            style="@style/creditCardInputItemEtStyle"
+            android:hint="单位地址信息" />
+
+    </LinearLayout>
+
+    <LinearLayout style="@style/creditCardInputItemStyle"
+        android:background="@android:color/white"
+        android:paddingRight="10dp"
+        android:paddingLeft="10dp"
+        >
+
+        <TextView
+            style="@style/creditCardInputItemTitleStyle1"
+            android:text="*单位电话:	 " />
+
+        <com.kfzs.libs.widget.CompleteCommitEditText
+            android:id="@+id/et_tel_q"
+            style="@style/creditCardInputItemEtStyle"
+            android:hint="区号" />
+
+        <com.kfzs.libs.widget.CompleteCommitEditText
+            android:id="@+id/et_tel_no"
+            style="@style/creditCardInputItemEtStyle"
+            android:hint="电话号码" />
+
+    </LinearLayout>
+
+    <Button
+        android:id="@+id/btn_next"
+        android:layout_width="match_parent"
+        android:layout_height="50dp"
+        android:textColor="@android:color/white"
+        android:layout_marginLeft="12dp"
+        android:layout_marginRight="12dp"
+        android:layout_marginBottom="16dp"
+        android:layout_marginTop="16dp"
+        android:textSize="15sp"
+        android:text="下一步>"
+        android:background="#3598fe"
+        />
+    <TextView
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:text="中信银行版权所有 京ICP证030779-1号"
+        android:gravity="center"
+        android:textSize="10sp"
+        />
+
+</LinearLayout>
+</ScrollView>

+ 100 - 0
app/src/main/res/layout/ftg_credit_card.xml

@@ -0,0 +1,100 @@
+<?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="#f2f2f2"
+    android:orientation="vertical">
+
+    <com.kfzs.libs.widget.navigation.NavigationBar
+        android:id="@+id/navigationbar"
+        android:layout_width="match_parent"
+        android:layout_height="45dp"
+        android:background="#ffffff" />
+
+    <ScrollView
+        android:layout_width="match_parent"
+        android:layout_height="0dp"
+        android:layout_weight="1">
+
+
+       <LinearLayout
+           android:layout_width="match_parent"
+           android:layout_height="match_parent"
+           android:orientation="vertical"
+           >
+           <LinearLayout style="@style/creditCardTypeItemStyle">
+
+               <RelativeLayout style="@style/creditCardTypeHeadStyle">
+
+                   <LinearLayout
+                       android:layout_width="wrap_content"
+                       android:layout_height="wrap_content">
+
+                       <ImageView
+                           style="@style/creditCardTypeHeadIconStyle"
+                           android:src="@drawable/ic_ms_logo" />
+
+                       <TextView
+                           style="@style/creditCardTypeHeadTitleStyle"
+                           android:text="民生信用卡" />
+
+                   </LinearLayout>
+
+                   <ImageView
+                       style="@style/creditCardTypeHeadArrowStyle"
+                       android:src="@drawable/ic_credit_right_black_arrow" />
+
+               </RelativeLayout>
+
+               <ImageView
+                   style="@style/creditCardTypeCardStyle"
+                   android:src="@drawable/ic_ms_card" />
+
+               <Button
+                   android:id="@+id/btn_ms"
+                   style="@style/creditCardTypeBtnStyle"
+                   android:text="立即申请" />
+
+           </LinearLayout>
+
+           <LinearLayout style="@style/creditCardTypeItemStyle"
+               android:layout_marginTop="16dp"
+               >
+
+               <RelativeLayout style="@style/creditCardTypeHeadStyle">
+
+                   <LinearLayout
+                       android:layout_width="wrap_content"
+                       android:layout_height="wrap_content">
+
+                       <ImageView
+                           style="@style/creditCardTypeHeadIconStyle"
+                           android:src="@drawable/ic_zx_logo" />
+
+                       <TextView
+                           style="@style/creditCardTypeHeadTitleStyle"
+                           android:text="中信信用卡" />
+
+                   </LinearLayout>
+
+                   <ImageView
+                       style="@style/creditCardTypeHeadArrowStyle"
+                       android:src="@drawable/ic_credit_right_black_arrow" />
+
+               </RelativeLayout>
+
+               <ImageView
+                   style="@style/creditCardTypeCardStyle"
+                   android:src="@drawable/ic_ms_card" />
+
+               <Button
+                   android:id="@+id/btn_zx"
+                   style="@style/creditCardTypeBtnStyle"
+                   android:text="立即申请" />
+
+           </LinearLayout>
+
+
+       </LinearLayout>
+    </ScrollView>
+</LinearLayout>

+ 33 - 0
app/src/main/res/values/gx_strings.xml

@@ -23,6 +23,29 @@
         <item>其他</item>
     </string-array>
 
+    <string-array name="credit_card_zx_tj">
+        <item>否</item>
+        <item>是</item>
+    </string-array>
+
+    <string-array name="credit_card_zx_gwxz">
+        <item> 一般员工</item>
+        <item>单位负责人级</item>
+        <item>部分负责人级</item>
+        <item>科室负责人级</item>
+    </string-array>
+    <string-array name="credit_card_zx_dwxz">
+        <item> 机关事业</item>
+        <item>国有</item>
+        <item>外商独资</item>
+        <item>合资/合作</item>
+        <item>股份制</item>
+        <item>民营</item>
+        <item>个体私营</item>
+        <item>其他</item>
+    </string-array>
+
+
     <string-array name="credit_card_citic_family_relation">
         <item>请选择</item>
         <item>配偶关系</item>
@@ -38,4 +61,14 @@
     </string-array>
 
     <color name="credit_blue_color">#0089ee</color>
+
+    <string name="ms_top_str">• 申请条件\n
+1.申请主卡年龄要求18-60周岁;附属卡年龄要求16-65周岁;\n
+2.具有稳定的职业和收入,有良好的信用和还款能力(在校学生勿申请);\n
+3.目前只支持二代中国居民身份证进行网络申请。\n
+4.中信银行信用卡申请过程不收取任何费用,请警惕不法分子向您承诺可办理高额度卡片或百分百成功办卡。\n
+5.根据相关政策要求,如您已持有我行I类借记账户,您获批的中信银行借贷合一卡借记账户将为Ⅱ类账户。借记账户使用条款以我行对外公示为准。"</string>
+
+    <string name="ms_bottom_str">本人已阅读全部申请材料,充分了解并清楚和知晓该信用卡产品相关信息,愿意遵守领用合同(协议)各项规则。
+			保证预借现金仅用于合理、合规的消费领域,不得进入生产经营及证券市场,股本经营性投资及房地产开发等非消费领域。</string>
 </resources>

+ 59 - 0
app/src/main/res/values/styles.xml

@@ -165,6 +165,12 @@
         <item name="android:textSize">11sp</item>
         <item name="android:textColor">#444444</item>
     </style>
+    <style name="creditCardInputItemTitleStyle1">
+        <item name="android:layout_width">85dp</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:textSize">11sp</item>
+        <item name="android:textColor">#444444</item>
+    </style>
 
     <style name="creditCardInputItemEtStyle">
         <item name="android:layout_width">0dp</item>
@@ -264,6 +270,59 @@
         <item name="android:layout_marginBottom">15dp</item>
     </style>
 
+    <style name="creditCardTypeItemStyle">
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:orientation">vertical</item>
+        <item name="android:background">@android:color/white</item>
+    </style>
+
+    <style name="creditCardTypeHeadStyle">
+        <item name="android:layout_width">wrap_content</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:paddingLeft">16dp</item>
+        <item name="android:paddingRight">16dp</item>
+        <item name="android:paddingTop">5dp</item>
+        <item name="android:paddingBottom">5dp</item>
+    </style>
+
+    <style name="creditCardTypeHeadIconStyle">
+        <item name="android:layout_width">25dp</item>
+        <item name="android:layout_height">25dp</item>
+        <item name="android:layout_gravity">center_vertical</item>
+    </style>
+
+    <style name="creditCardTypeHeadTitleStyle">
+        <item name="android:layout_width">wrap_content</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:layout_gravity">center_vertical</item>
+        <item name="android:layout_marginLeft">10dp</item>
+    </style>
+
+    <style name="creditCardTypeHeadArrowStyle">
+        <item name="android:layout_width">wrap_content</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:layout_alignParentRight">true</item>
+        <item name="android:layout_centerVertical">true</item>
+    </style>
+
+    <style name="creditCardTypeCardStyle">
+        <item name="android:layout_width">200.5dp</item>
+        <item name="android:layout_height">132dp</item>
+        <item name="android:layout_marginBottom">10dp</item>
+        <item name="android:layout_marginTop">14dp</item>
+        <item name="android:layout_gravity">center_horizontal</item>
+    </style>
+
+    <style name="creditCardTypeBtnStyle">
+        <item name="android:layout_width">120dp</item>
+        <item name="android:layout_height">40dp</item>
+        <item name="android:layout_gravity">center_horizontal</item>
+        <item name="android:textColor">@android:color/white</item>
+        <item name="android:background">@drawable/bg_btn_credit</item>
+        <item name="android:layout_marginBottom">15dp</item>
+    </style>
+
     <style name="citic_creditCardFontStyle">
         <item name="android:textColor">@android:color/black</item>
         <item name="android:textColorHint">#b5b5b5</item>

+ 28 - 0
kfzslibrary/src/main/java/com/kfzs/libs/convert/HttpObservableTransformer.java

@@ -0,0 +1,28 @@
+package com.kfzs.libs.convert;
+
+import rx.Observable;
+import rx.Observer;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+/**
+ * Created by guoxin on 2018/4/4.
+ */
+
+public class HttpObservableTransformer implements Observable.Transformer{
+
+    private HttpObserver httpObserver;
+
+    public HttpObservableTransformer(HttpObserver httpObserver){
+        this.httpObserver = httpObserver;
+    }
+
+    @Override
+    public Object call(Object observable) {
+        return ((Observable) observable).subscribeOn(Schedulers.io())
+                .unsubscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(httpObserver);
+    }
+
+}

+ 26 - 0
kfzslibrary/src/main/java/com/kfzs/libs/convert/HttpObserver.java

@@ -0,0 +1,26 @@
+package com.kfzs.libs.convert;
+
+import rx.Observable;
+import rx.Observer;
+
+/**
+ * Created by guoxin on 2018/4/4.
+ */
+
+public class HttpObserver<T> implements Observer<T> {
+
+    @Override
+    public void onCompleted() {
+
+    }
+
+    @Override
+    public void onError(Throwable e) {
+
+    }
+
+    @Override
+    public void onNext(T t) {
+
+    }
+}

+ 56 - 0
kfzslibrary/src/main/java/com/kfzs/libs/convert/TConverterFactory.java

@@ -0,0 +1,56 @@
+package com.kfzs.libs.convert;
+
+import com.google.gson.Gson;
+import com.google.gson.TypeAdapter;
+import com.google.gson.reflect.TypeToken;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Type;
+
+import okhttp3.ResponseBody;
+import retrofit2.Converter;
+import retrofit2.Retrofit;
+
+/**
+ * Created by guoxin on 2018/4/4.
+ */
+
+public class TConverterFactory extends Converter.Factory{
+
+
+    public static TConverterFactory create() {
+        return create(new Gson());
+    }
+
+    /**
+     * Create an instance using {@code gson} for conversion. Encoding to JSON and
+     * decoding from JSON (when no charset is specified by a header) will use UTF-8.
+     */
+    public static TConverterFactory create(Gson gson) {
+        return new TConverterFactory(gson);
+    }
+
+    private final Gson gson;
+
+    private TConverterFactory(Gson gson) {
+        if (gson == null) throw new NullPointerException("gson == null");
+        this.gson = gson;
+    }
+
+
+
+
+//    @Override
+//    public Converter<?, RequestBody> requestBodyConverter(Type type,
+//                                                          Annotation[] parameterAnnotations, Annotation[] methodAnnotations, Retrofit retrofit) {
+//        return new ApiRequestConverter<>();
+//    }
+
+    @Override
+    public Converter<ResponseBody, ?> responseBodyConverter(Type type, Annotation[] annotations,
+                                                            Retrofit retrofit) {
+        TypeAdapter<?> adapter = gson.getAdapter(TypeToken.get(type));
+        return new TResponseConverter<>(gson, type);
+    }
+
+}

+ 97 - 0
kfzslibrary/src/main/java/com/kfzs/libs/convert/TResponseConverter.java

@@ -0,0 +1,97 @@
+package com.kfzs.libs.convert;
+
+import com.google.gson.Gson;
+import java.io.IOException;
+import java.lang.reflect.Array;
+import java.lang.reflect.GenericArrayType;
+import java.lang.reflect.ParameterizedType;
+import java.lang.reflect.Type;
+import java.lang.reflect.TypeVariable;
+import java.lang.reflect.WildcardType;
+import okhttp3.ResponseBody;
+import retrofit2.Converter;
+
+/**
+ * Created by devil on 2016/9/18.
+ */
+final class TResponseConverter<T> implements Converter<ResponseBody, T> {
+
+    private final Gson gson;
+    private final Type type;
+
+    TResponseConverter(Gson gson, Type type) {
+        this.gson = gson;
+        this.type = type;
+    }
+
+    @Override
+    public T convert(ResponseBody value) throws IOException {
+
+
+        //如果数据加密,这里可以先从ResponseBody中取出字符串,如:value.string();value.bytes();然后解密
+
+        try {
+            String response = value.string();
+            Class cls = getRawType(type);
+            if (cls.isAssignableFrom(String.class)) {
+                return (T) response;
+            }
+            else {
+                return (T) gson.fromJson(response,type);
+            }
+        }
+        finally {
+            value.close();
+        }
+
+    }
+
+    private Type getType() {
+        ParameterizedType parameterizedType = (ParameterizedType) this.getClass().getGenericSuperclass();
+        Type entityClass = parameterizedType.getActualTypeArguments()[0];
+        return entityClass;
+    }
+
+    private Class<?> getRawType(Type type) {
+        if (type instanceof Class<?>) {
+            // type is a normal class.
+            return (Class<?>) type;
+
+        } else if (type instanceof ParameterizedType) {
+            ParameterizedType parameterizedType = (ParameterizedType) type;
+
+            // I'm not exactly sure why getRawType() returns Type instead of Class.
+            // Neal isn't either but suspects some pathological case related
+            // to nested classes exists.
+            Type rawType = parameterizedType.getRawType();
+            checkArgument(rawType instanceof Class);
+            return (Class<?>) rawType;
+
+        } else if (type instanceof GenericArrayType) {
+            Type componentType = ((GenericArrayType) type).getGenericComponentType();
+            return Array.newInstance(getRawType(componentType), 0).getClass();
+
+        } else if (type instanceof TypeVariable) {
+            // we could use the variable's bounds, but that won't work if there are multiple.
+            // having a raw type that's more general than necessary is okay
+            return Object.class;
+
+        } else if (type instanceof WildcardType) {
+            return getRawType(((WildcardType) type).getUpperBounds()[0]);
+
+        } else {
+            String className = type == null ? "null" : type.getClass().getName();
+            throw new IllegalArgumentException("Expected a Class, ParameterizedType, or "
+                    + "GenericArrayType, but <" + type + "> is of type " + className);
+        }
+    }
+
+    private void checkArgument(boolean condition) {
+        if (!condition) {
+            throw new IllegalArgumentException();
+        }
+    }
+
+}
+
+

+ 22 - 0
kfzslibrary/src/main/java/com/kfzs/libs/convert/TResponseDataFormatException.java

@@ -0,0 +1,22 @@
+package com.kfzs.libs.convert;
+
+import java.io.IOException;
+
+/**
+ * 返回的数据解析json时候格式错误
+ * Created by guoxin on 2018/4/4.
+ */
+
+public class TResponseDataFormatException extends IOException{
+    public static final int ERROR_DATA_FORMAT_NOT_JSON = 10001;
+
+    private int errorCode;
+    public TResponseDataFormatException(int errorCode, String message) {
+        super(message);
+        this.errorCode = errorCode;
+    }
+    public int getErrorCode() {
+        return errorCode;
+    }
+
+}

+ 2 - 0
kfzslibrary/src/main/java/com/kfzs/libs/di/http/HttpModule.java

@@ -2,6 +2,7 @@ package com.kfzs.libs.di.http;
 
 
 import com.kfzs.libs.convert.StringConverterFactory;
+import com.kfzs.libs.convert.TConverterFactory;
 
 import java.util.concurrent.TimeUnit;
 
@@ -48,6 +49,7 @@ public class HttpModule {
                 .baseUrl(BASE_URL)
                 .addConverterFactory(StringConverterFactory.create())
                 .addConverterFactory(GsonConverterFactory.create())
+//                .addConverterFactory(TConverterFactory.create())
                 .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
                 .build();
         return retrofit;

+ 26 - 0
kfzslibrary/src/main/java/com/kfzs/libs/di/http/HttpService.java

@@ -34,4 +34,30 @@ public interface HttpService {
     @FormUrlEncoded
     @POST("credits/cmbc/extend")
     Observable<String> commitCreditCardDetails(@FieldMap Map<String, String> map);
+
+    //表格形式发送
+    @FormUrlEncoded
+    @POST("credits/ecitic/code")
+    Observable<String> commitCreditCardZXCode(@FieldMap Map<String, String> map);
+
+    @GET("credits/ecitic/img_code")
+    Observable<String> commitCreditCardZXImageCode();
+
+    @FormUrlEncoded
+    @POST("credits/ecitic/company")
+    Observable<String> zxCompany(@FieldMap Map<String, String> map);
+
+    @FormUrlEncoded
+    @POST("credits/ecitic/contact")
+    Observable<String> zxContact(@FieldMap Map<String, String> map);
+
+    @FormUrlEncoded
+    @POST("credits/ecitic/relative")
+    Observable<String> zxRelative(@FieldMap Map<String, String> map);
+
+    @FormUrlEncoded
+    @POST("credits/ecitic/basic")
+    Observable<String> zxBasic(@FieldMap Map<String, String> map);
+
+
 }