Przeglądaj źródła

优化流程 全职岗位编辑功能

ZhangXinYu 6 lat temu
rodzic
commit
e844ae914b
21 zmienionych plików z 332 dodań i 68 usunięć
  1. 0 0
      app/src/main/assets/work_experience.json
  2. 8 15
      app/src/main/java/com/webrain/dailypay/ui/activity/position/PositionReleaseActivity.java
  3. 13 5
      app/src/main/java/com/webrain/dailypay/ui/adapter/viewpager/FragmentPagePositionReleaseAdapter.java
  4. 2 0
      app/src/main/java/com/webrain/dailypay/ui/fragment/PositionFragment.java
  5. 104 3
      app/src/main/java/com/webrain/dailypay/ui/fragment/position/PositionFullReleaseFragment.java
  6. 2 3
      app/src/main/java/com/webrain/dailypay/ui/fragment/position/PositionPartReleaseFragment.java
  7. 11 0
      app/src/main/java/com/webrain/dailypay/ui/mvp/contacts/PositionFullReleaseFragmentContacts.java
  8. 1 3
      app/src/main/java/com/webrain/dailypay/ui/mvp/contacts/PositionReleaseContacts.java
  9. 25 0
      app/src/main/java/com/webrain/dailypay/ui/mvp/model/PositionFullReleaseFragmentModel.java
  10. 4 2
      app/src/main/java/com/webrain/dailypay/ui/mvp/model/PositionReleaseModel.java
  11. 19 0
      app/src/main/java/com/webrain/dailypay/ui/mvp/presenter/PositionFullReleaseFragmentPresenter.java
  12. 5 0
      app/src/main/java/com/webrain/dailypay/ui/mvp/presenter/PositionPartReleaseFragmentPresenter.java
  13. 15 14
      app/src/main/java/com/webrain/dailypay/ui/mvp/presenter/PositionReleasePresenter.java
  14. 23 1
      app/src/main/java/com/webrain/dailypay/ui/viewholder/AgeIntervalHolder.java
  15. 19 0
      app/src/main/java/com/webrain/dailypay/ui/viewholder/BaseSalaryHolder.java
  16. 20 1
      app/src/main/java/com/webrain/dailypay/ui/viewholder/LengthOfServiceHolder.java
  17. 1 3
      app/src/main/java/com/webrain/dailypay/ui/viewholder/WorkAddressHolderView.java
  18. 19 2
      app/src/main/java/com/webrain/dailypay/utils/BaseInformationUtils.java
  19. 1 1
      app/src/main/res/layout/view_work_address_select.xml
  20. 1 0
      baselibrary/src/main/java/com/webrain/baselibrary/EventConstant.java
  21. 39 15
      baselibrary/src/main/java/com/webrain/baselibrary/widget/PositionIndicator.java

app/src/main/assets/length_of_service.json → app/src/main/assets/work_experience.json


+ 8 - 15
app/src/main/java/com/webrain/dailypay/ui/activity/position/PositionReleaseActivity.java

@@ -6,6 +6,7 @@ import android.support.v7.widget.CardView;
 import android.view.KeyEvent;
 import android.view.View;
 
+import com.webrain.baselibrary.AppConstant;
 import com.webrain.baselibrary.widget.NoScrollViewPager;
 import com.webrain.baselibrary.widget.PositionIndicator;
 import com.webrain.dailypay.R;
@@ -49,16 +50,20 @@ public class PositionReleaseActivity extends BaseActivity<PositionReleasePresent
         super.onCreate(savedInstanceState);
         setOnBackClistener(onBackClickListener);
         mvpPresenter.getTabItem();
-        mvpPresenter.getPositionBean();
     }
 
     @Override
-    public void onTabItem(List<TabItemBean> tabItemBeanList) {
+    public void onTabItem(List<TabItemBean> tabItemBeanList, PositionListBean bean) {
         if (mAdapter == null) {
             mAdapter = new FragmentPagePositionReleaseAdapter(getSupportFragmentManager(), mContext, tabItemBeanList);
             vpPosition.setAdapter(mAdapter);
             vpPosition.setOffscreenPageLimit(tabItemBeanList.size());
-            piPosition.setViewPager(vpPosition, tabItemBeanList.get(0).getTitle(), tabItemBeanList.get(1).getTitle());
+            if (bean != null) {
+                mAdapter.initPositionEdit(bean);
+                piPosition.setViewPager(null, bean.getPosition().getPositionCategory() == AppConstant.PART_TIME_JOB ? 0 : 1, mContext.getString(R.string.position_part), mContext.getString(R.string.position_full));
+            } else {
+                piPosition.setViewPager(vpPosition, mContext.getString(R.string.position_part), mContext.getString(R.string.position_full));
+            }
         }
     }
 
@@ -79,18 +84,6 @@ public class PositionReleaseActivity extends BaseActivity<PositionReleasePresent
     }
 
     /**
-     * 当岗位修改
-     *
-     * @param bean
-     */
-    @Override
-    public void onPositionEdit(PositionListBean bean) {
-        if (bean != null && mAdapter != null) {
-            mAdapter.initPositionEdit(bean);
-        }
-    }
-
-    /**
      * 返回按钮点击效果
      */
     View.OnClickListener onBackClickListener = new View.OnClickListener() {

+ 13 - 5
app/src/main/java/com/webrain/dailypay/ui/adapter/viewpager/FragmentPagePositionReleaseAdapter.java

@@ -42,8 +42,9 @@ public class FragmentPagePositionReleaseAdapter extends FragmentStatePagerAdapte
             }
             fragment = partReleaseFragment;
         } else if (TextUtils.equals(listTitle.get(position).getHint(), mContext.getString(R.string.position_full))) {
-            if (fullReleaseFragment == null) {
-                fullReleaseFragment = new PositionFullReleaseFragment();
+            fullReleaseFragment = new PositionFullReleaseFragment();
+            if (positionListBean != null && positionListBean.getPosition().getPositionCategory() == AppConstant.FULL_TIME_JOB) {
+                fullReleaseFragment.iniPositionBean(positionListBean);
             }
             fragment = fullReleaseFragment;
         }
@@ -64,10 +65,17 @@ public class FragmentPagePositionReleaseAdapter extends FragmentStatePagerAdapte
      * @return
      */
     public boolean back(int position) {
-        if (position == 0) {
-            return partReleaseFragment.back();
+        if (positionListBean != null) {
+            if (positionListBean.getPosition().getPositionCategory() == AppConstant.PART_TIME_JOB)
+                return partReleaseFragment.back();
+            else
+                return fullReleaseFragment.back();
         } else {
-            return fullReleaseFragment.back();
+            if (position == 0) {
+                return partReleaseFragment.back();
+            } else {
+                return fullReleaseFragment.back();
+            }
         }
     }
 

+ 2 - 0
app/src/main/java/com/webrain/dailypay/ui/fragment/PositionFragment.java

@@ -175,6 +175,8 @@ public class PositionFragment extends BaseFragment<PositionFragmentPresenter> im
     public void onEvent(StringEvent event) {
         if (event.getData().equals(EventConstant.EVENT_USER_AUTHENTICATION_STATUS_CHANGE)) {
             mvpPresenter.init();
+        } else if (event.getData().equals(EventConstant.EVENT_POSITION_LIST_REFRESH)) {
+            mvpPresenter.getHttpPositionList(true, true, false);
         }
     }
 

+ 104 - 3
app/src/main/java/com/webrain/dailypay/ui/fragment/position/PositionFullReleaseFragment.java

@@ -21,6 +21,9 @@ import android.widget.ViewFlipper;
 import com.webrain.baselibrary.widget.GridViewForScrollView;
 import com.webrain.dailypay.R;
 import com.webrain.dailypay.bean.BaseInformationBean;
+import com.webrain.dailypay.bean.PositionBean;
+import com.webrain.dailypay.bean.PositionListBean;
+import com.webrain.dailypay.bean.WorkAddressBean;
 import com.webrain.dailypay.ui.activity.position.PositionReleaseActivity;
 import com.webrain.dailypay.ui.adapter.gridview.PositionReleaseSelectAdapter;
 import com.webrain.dailypay.ui.adapter.gridview.PositionTypeSelectAdapter;
@@ -34,6 +37,7 @@ import com.webrain.dailypay.ui.viewholder.EducationalRequirementHolder;
 import com.webrain.dailypay.ui.viewholder.LengthOfServiceHolder;
 import com.webrain.dailypay.ui.viewholder.WorkAddressHolderView;
 import com.webrain.dailypay.ui.widget.ShrinkAnimationLayout;
+import com.webrain.dailypay.utils.BaseInformationUtils;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -129,6 +133,7 @@ public class PositionFullReleaseFragment extends BaseFragment<PositionFullReleas
     DatePickerHolder deadlinePickHolder;
 
     List<WorkAddressHolderView> mHolderViews;
+    PositionListBean positionListBean;
 
     @Override
     protected int getLayoutId() {
@@ -148,7 +153,8 @@ public class PositionFullReleaseFragment extends BaseFragment<PositionFullReleas
         salAgeRequirement.initExpand(false);
         salLengthOfServiceInterval.initExpand(false);
         salDeadline.initExpand(false);
-
+        if (positionListBean != null)
+            mvpPresenter.iniPositionBean(positionListBean);
         mvpPresenter.init();
         return view;
     }
@@ -200,12 +206,14 @@ public class PositionFullReleaseFragment extends BaseFragment<PositionFullReleas
                 }
                 break;
             case R.id.tv_work_address:
-                addWorkAddress();
+                addWorkAddress(null, false);
                 break;
             case R.id.tv_salary_interval:
                 if (baseSalaryHolder == null) {
                     baseSalaryHolder = new BaseSalaryHolder(mContext, onSalarySelectListener);
                     baseSalaryHolder.setScrollView(svThree);
+                    if (positionListBean != null && positionListBean.getPosition() != null)//回显基本薪资
+                        baseSalaryHolder.initShowBack(positionListBean.getPosition().getBasicSalary());
                     salSalaryInterval.addView(baseSalaryHolder.getView());
                 }
                 salSalaryInterval.toggleExpand();
@@ -214,6 +222,8 @@ public class PositionFullReleaseFragment extends BaseFragment<PositionFullReleas
                 if (educationalRequirementHolder == null) {
                     educationalRequirementHolder = new EducationalRequirementHolder(mContext, onEducationalSelectListener);
                     educationalRequirementHolder.setScrollView(svFour);
+                    if (positionListBean != null && positionListBean.getPosition() != null)//回显学历要求
+                        educationalRequirementHolder.initShowBack(positionListBean.getPosition().getQualification());
                     salEducationalRequirement.addView(educationalRequirementHolder.getView());
                 }
                 salEducationalRequirement.toggleExpand();
@@ -222,6 +232,8 @@ public class PositionFullReleaseFragment extends BaseFragment<PositionFullReleas
                 if (ageIntervalHolder == null) {
                     ageIntervalHolder = new AgeIntervalHolder(mContext, onAgeIntervalSelectListener);
                     ageIntervalHolder.setScrollView(svFour);
+                    if (positionListBean != null && positionListBean.getPosition() != null)//回显年龄要求
+                        ageIntervalHolder.initShowBack(positionListBean.getPosition().getAgeRange());
                     salAgeRequirement.addView(ageIntervalHolder.getView());
                 }
                 salAgeRequirement.toggleExpand();
@@ -230,6 +242,8 @@ public class PositionFullReleaseFragment extends BaseFragment<PositionFullReleas
                 if (lengthOfServiceHolder == null) {
                     lengthOfServiceHolder = new LengthOfServiceHolder(mContext, onLengthOfServiceListener);
                     lengthOfServiceHolder.setScrollView(svFour);
+                    if (positionListBean != null && positionListBean.getPosition() != null)//回显工龄要求
+                        lengthOfServiceHolder.initShowBack(positionListBean.getPosition().getWorkExperience());
                     salLengthOfServiceInterval.addView(lengthOfServiceHolder.getView());
                 }
                 salLengthOfServiceInterval.toggleExpand();
@@ -238,6 +252,8 @@ public class PositionFullReleaseFragment extends BaseFragment<PositionFullReleas
                 if (deadlinePickHolder == null) {
                     deadlinePickHolder = new DatePickerHolder(mContext, onDeadLineSelectListener);
                     deadlinePickHolder.initSingleSelect();
+                    if (positionListBean != null && positionListBean.getPosition() != null && !TextUtils.isEmpty(positionListBean.getPosition().getEndDate()))//回显控件截止日期
+                        deadlinePickHolder.setSelectData(positionListBean.getPosition().getEndDate());
                     salDeadline.addView(deadlinePickHolder.getView());
                 }
                 salDeadline.toggleExpand();
@@ -347,10 +363,95 @@ public class PositionFullReleaseFragment extends BaseFragment<PositionFullReleas
     }
 
     /**
+     * 初始化编辑岗位数据
+     *
+     * @param bean
+     */
+    @Override
+    public void iniPositionBean(PositionListBean bean) {
+        positionListBean = bean;
+    }
+
+    /**
+     * 当岗位需要编辑
+     *
+     * @param bean
+     */
+    @Override
+    public void onPositionEdit(PositionListBean bean) {
+        if (bean != null) {
+            List<WorkAddressBean> addressBeanList = bean.getAddress();
+            if (addressBeanList != null && !addressBeanList.isEmpty()) {
+                for (WorkAddressBean item : addressBeanList) {
+                    addWorkAddress(item, false);
+                }
+            }
+            PositionBean positionBean = bean.getPosition();
+            if (positionBean != null) {
+                if (mAdapter != null)//回显岗位类别
+                    mAdapter.initShowBack(positionBean.getFulltimePositionType());
+                if (!TextUtils.isEmpty(positionBean.getPositionName()))//回显岗位标题
+                    etTitle.setText(positionBean.getPositionName());
+                if (!TextUtils.isEmpty(positionBean.getPositionDetail()))//回显岗位详情
+                    etDesc.setText(positionBean.getPositionDetail());
+                if (!TextUtils.isEmpty(positionBean.getRecruitNumber()))//回显预计招聘人数
+                    etNum.setText(positionBean.getRecruitNumber());
+                if (!TextUtils.isEmpty(positionBean.getBasicSalary()))//回显基本薪资
+                    tvSalaryInterval.setText(BaseInformationUtils.getSalary(mContext, positionBean.getBasicSalary()));
+                if (!TextUtils.isEmpty(positionBean.getSalaryStructure()))//回显薪资结构
+                    etSalaryStructure.setText(positionBean.getSalaryStructure());
+                if (mWelfareAdapter != null)//回显岗位福利
+                    mWelfareAdapter.initShowBack(positionBean.getWelfare());
+                if (!TextUtils.isEmpty(positionBean.getHasRegularBus())) {//回显班车
+                    switch (positionBean.getHasRegularBus()) {
+                        case "0":
+                            rbNo.setChecked(true);
+                            break;
+                        case "1":
+                            rbHave.setChecked(true);
+                            break;
+                    }
+                }
+                if (!TextUtils.isEmpty(positionBean.getGender())) {//回显性别
+                    switch (positionBean.getGender()) {
+                        case "0":
+                            rbNormal.setChecked(true);
+                            break;
+                        case "1":
+                            rbMale.setChecked(true);
+                            break;
+                        case "2":
+                            rbFemale.setChecked(true);
+                            break;
+                    }
+                }
+                if (!TextUtils.isEmpty(positionBean.getQualification()))//回显学历
+                    tvEducationalRequirement.setText(BaseInformationUtils.getEducationBackground(mContext, positionBean.getQualification()));
+                if (!TextUtils.isEmpty(positionBean.getAgeRange()))//回显年龄
+                    tvAgeRequirement.setText(positionBean.getAgeRange());
+                if (!TextUtils.isEmpty(positionBean.getWorkExperience()))//回显工龄
+                    tvLengthOfServiceInterval.setText(BaseInformationUtils.getWorkExperience(mContext, positionBean.getWorkExperience()));
+                if (!TextUtils.isEmpty(positionBean.getEndDate()))//回显截止日期
+                    tvDeadline.setText(positionBean.getEndDate());
+                if (!TextUtils.isEmpty(positionBean.getContactPerson()))//回显联系人
+                    etContact.setText(positionBean.getContactPerson());
+                if (!TextUtils.isEmpty(positionBean.getContactPhone()))//回显联系人电话
+                    etContactNumber.setText(positionBean.getContactPhone());
+
+
+            }
+        }
+    }
+
+    /**
      * 添加地址
      */
-    private void addWorkAddress() {
+    private void addWorkAddress(WorkAddressBean bean, boolean isPublishNationwide) {
         WorkAddressHolderView mHolder = new WorkAddressHolderView(mContext, svTwo);
+        if (bean != null)
+            mHolder.initShowBack(bean);
+        else if (isPublishNationwide)
+            mHolder.initShowBackCountry();
         llWorkAddress.addView(mHolder.getView());
         mHolderViews.add(mHolder);
         tvWorkAddress.setHint(R.string.hint_click_add_select_address);

+ 2 - 3
app/src/main/java/com/webrain/dailypay/ui/fragment/position/PositionPartReleaseFragment.java

@@ -34,7 +34,6 @@ import com.webrain.dailypay.ui.mvp.contacts.PositionPartReleaseFragmentContacts;
 import com.webrain.dailypay.ui.mvp.presenter.PositionPartReleaseFragmentPresenter;
 import com.webrain.dailypay.ui.viewholder.DatePickerHolder;
 import com.webrain.dailypay.ui.viewholder.EducationalRequirementHolder;
-import com.webrain.dailypay.ui.viewholder.WorkAddressHolder;
 import com.webrain.dailypay.ui.viewholder.WorkAddressHolderView;
 import com.webrain.dailypay.ui.viewholder.WorkTimeFrameHolder;
 import com.webrain.dailypay.ui.widget.ShrinkAnimationLayout;
@@ -419,7 +418,7 @@ public class PositionPartReleaseFragment extends BaseFragment<PositionPartReleas
     }
 
     /**
-     * 初始化岗位
+     * 初始化编辑岗位数
      *
      * @param bean
      */
@@ -527,7 +526,7 @@ public class PositionPartReleaseFragment extends BaseFragment<PositionPartReleas
         WorkAddressHolderView mHolder = new WorkAddressHolderView(mContext, sv);
         if (bean != null)
             mHolder.initShowBack(bean);
-        if (isPublishNationwide)
+        else if (isPublishNationwide)
             mHolder.initShowBackCountry();
         llWorkAddress.addView(mHolder.getView());
         mHolderViews.add(mHolder);

+ 11 - 0
app/src/main/java/com/webrain/dailypay/ui/mvp/contacts/PositionFullReleaseFragmentContacts.java

@@ -1,6 +1,7 @@
 package com.webrain.dailypay.ui.mvp.contacts;
 
 import com.webrain.dailypay.bean.BaseInformationBean;
+import com.webrain.dailypay.bean.PositionListBean;
 import com.webrain.dailypay.callback.MvpDataCallBack;
 import com.webrain.dailypay.ui.base.IPresenter;
 import com.webrain.dailypay.ui.base.IView;
@@ -16,12 +17,18 @@ public class PositionFullReleaseFragmentContacts {
         void onPositionFullTypeList(List<BaseInformationBean> data);
 
         void onPositionWelfare(List<BaseInformationBean> data);
+
+        void iniPositionBean(PositionListBean bean);
+
+        void onPositionEdit(PositionListBean bean);
     }
 
     public interface IPositionFullReleaseFragmentPresenter extends IPresenter {
 
         void init();
 
+        void iniPositionBean(PositionListBean bean);
+
         boolean isValidOne(BaseInformationBean data);
 
         boolean isValidTwo(String title, String desc, List<WorkAddressHolderView> address);
@@ -38,6 +45,10 @@ public class PositionFullReleaseFragmentContacts {
 
         List<BaseInformationBean> getPositionWelfare();
 
+        void iniPositionBean(PositionListBean bean);
+
+        PositionListBean getPositionBean();
+
         void HttpReleasePosition(String positionType, String title, String desc, String address, String isCountry, String num, String salary, String salaryStructure, String welfare, int bus, int gender, String educational, String age, String workExperience, String endDate, String contactPerson, String contactPhone, MvpDataCallBack<Boolean> callBack);
 
     }

+ 1 - 3
app/src/main/java/com/webrain/dailypay/ui/mvp/contacts/PositionReleaseContacts.java

@@ -12,17 +12,15 @@ import java.util.List;
 
 public class PositionReleaseContacts {
     public interface IPositionReleaseView extends IView {
-        void onTabItem(List<TabItemBean> tabItemBeanList);
+        void onTabItem(List<TabItemBean> tabItemBeanList,PositionListBean bean);
 
         void initPageIndicatorVisible(boolean isVisible);
 
-        void onPositionEdit(PositionListBean bean);
     }
 
     public interface IPositionReleasePresenter extends IPresenter {
         void getTabItem();//获取岗位的TabItemBean
 
-        void getPositionBean();
     }
 
     public interface IPositionReleaseModel {

+ 25 - 0
app/src/main/java/com/webrain/dailypay/ui/mvp/model/PositionFullReleaseFragmentModel.java

@@ -4,6 +4,7 @@ import android.content.Context;
 
 import com.webrain.baselibrary.AppConstant;
 import com.webrain.dailypay.bean.BaseInformationBean;
+import com.webrain.dailypay.bean.PositionListBean;
 import com.webrain.dailypay.bean.api.ApiNormalBean;
 import com.webrain.dailypay.bean.api.AuthCodeBean;
 import com.webrain.dailypay.callback.MvpDataCallBack;
@@ -18,6 +19,8 @@ import com.webrain.dailypay.utils.BaseInformationUtils;
 import java.util.List;
 
 public class PositionFullReleaseFragmentModel extends BaseModel implements PositionFullReleaseFragmentContacts.IPositionFullReleaseFragmentModel {
+    private PositionListBean positionBean;
+
     public PositionFullReleaseFragmentModel(Context mContext) {
         super(mContext);
     }
@@ -43,6 +46,26 @@ public class PositionFullReleaseFragmentModel extends BaseModel implements Posit
     }
 
     /**
+     * 加载岗位数据
+     *
+     * @param bean
+     */
+    @Override
+    public void iniPositionBean(PositionListBean bean) {
+        this.positionBean = bean;
+    }
+
+    /**
+     * 返回岗位数据
+     *
+     * @return
+     */
+    @Override
+    public PositionListBean getPositionBean() {
+        return this.positionBean;
+    }
+
+    /**
      * http 发布全职
      *
      * @param positionType
@@ -85,6 +108,8 @@ public class PositionFullReleaseFragmentModel extends BaseModel implements Posit
         params.put("endDate", endDate);
         params.put("contactPerson", contactPerson);
         params.put("contactPhone", contactPhone);
+        if (positionBean != null)
+            params.put("positionId", positionBean.getPosition().getId());
         new PositionSubscribe(mContext).requestFullTimePositionAuth(params.getRequestParams(), new ApiObserver<ApiNormalBean>(mContext, true, false) {
             @Override
             public void onSuccess(ApiNormalBean data) {

+ 4 - 2
app/src/main/java/com/webrain/dailypay/ui/mvp/model/PositionReleaseModel.java

@@ -34,7 +34,7 @@ public class PositionReleaseModel extends BaseModel implements PositionReleaseCo
     }
 
     /**
-     * 获取岗位对象
+     * 获取编辑岗位对象
      *
      * @return
      */
@@ -43,6 +43,8 @@ public class PositionReleaseModel extends BaseModel implements PositionReleaseCo
         if (positionBean == null) {
             positionBean = new Gson().fromJson(((PositionReleaseActivity) mContext).getIntent().getStringExtra(IntentConstant.JSON), PositionListBean.class);
         }
-        return positionBean;
+        if (positionBean != null && positionBean.getPosition() != null)//判断数据合法性
+            return positionBean;
+        return null;
     }
 }

+ 19 - 0
app/src/main/java/com/webrain/dailypay/ui/mvp/presenter/PositionFullReleaseFragmentPresenter.java

@@ -4,11 +4,14 @@ import android.content.Intent;
 import android.text.TextUtils;
 
 import com.google.gson.Gson;
+import com.webrain.baselibrary.EventConstant;
 import com.webrain.baselibrary.utils.ToastUtils;
 import com.webrain.dailypay.R;
 import com.webrain.dailypay.bean.BaseInformationBean;
+import com.webrain.dailypay.bean.PositionListBean;
 import com.webrain.dailypay.bean.WorkAddressBean;
 import com.webrain.dailypay.callback.MvpDataCallBack;
+import com.webrain.dailypay.event.StringEvent;
 import com.webrain.dailypay.ui.activity.identity.IdentityResultActivity;
 import com.webrain.dailypay.ui.activity.position.PositionReleaseResultActivity;
 import com.webrain.dailypay.ui.base.BasePresenter;
@@ -17,6 +20,8 @@ import com.webrain.dailypay.ui.mvp.contacts.PositionFullReleaseFragmentContacts;
 import com.webrain.dailypay.ui.mvp.model.PositionFullReleaseFragmentModel;
 import com.webrain.dailypay.ui.viewholder.WorkAddressHolderView;
 
+import org.greenrobot.eventbus.EventBus;
+
 import java.util.ArrayList;
 import java.util.List;
 
@@ -33,6 +38,19 @@ public class PositionFullReleaseFragmentPresenter extends BasePresenter<Position
         if (isViewAttach()) {
             mvpReference.get().onPositionFullTypeList(mPositionFullReleaseFragmentModel.getPositionFullTypeList());
             mvpReference.get().onPositionWelfare(mPositionFullReleaseFragmentModel.getPositionWelfare());
+            mvpReference.get().onPositionEdit(mPositionFullReleaseFragmentModel.getPositionBean());
+        }
+    }
+
+    /**
+     * 加载岗位编辑数据
+     *
+     * @param bean
+     */
+    @Override
+    public void iniPositionBean(PositionListBean bean) {
+        if (isViewAttach()) {
+            mPositionFullReleaseFragmentModel.iniPositionBean(bean);
         }
     }
 
@@ -176,6 +194,7 @@ public class PositionFullReleaseFragmentPresenter extends BasePresenter<Position
             mPositionFullReleaseFragmentModel.HttpReleasePosition(typeResult, title, desc, workAddressResult, isCountry ? "1" : "0", num, salary, salaryStructure, welfareResult, bus, gender, educational, age, workExperience, endDate, contactPerson, contactPhone, new MvpDataCallBack<Boolean>() {
                 @Override
                 public void onData(Boolean data) {
+                    EventBus.getDefault().post(new StringEvent(EventConstant.EVENT_POSITION_LIST_REFRESH));
                     mvpReference.get().startActivity(new Intent(mvpReference.get().getContext(), PositionReleaseResultActivity.class));
                     mvpReference.get().getActivity().finish();
                 }

+ 5 - 0
app/src/main/java/com/webrain/dailypay/ui/mvp/presenter/PositionPartReleaseFragmentPresenter.java

@@ -4,6 +4,7 @@ import android.content.Intent;
 import android.text.TextUtils;
 
 import com.google.gson.Gson;
+import com.webrain.baselibrary.EventConstant;
 import com.webrain.baselibrary.utils.ToastUtils;
 import com.webrain.dailypay.R;
 import com.webrain.dailypay.bean.BaseInformationBean;
@@ -11,6 +12,7 @@ import com.webrain.dailypay.bean.PositionBean;
 import com.webrain.dailypay.bean.PositionListBean;
 import com.webrain.dailypay.bean.WorkAddressBean;
 import com.webrain.dailypay.callback.MvpDataCallBack;
+import com.webrain.dailypay.event.StringEvent;
 import com.webrain.dailypay.ui.activity.position.PositionReleaseResultActivity;
 import com.webrain.dailypay.ui.base.BasePresenter;
 import com.webrain.dailypay.ui.fragment.position.PositionPartReleaseFragment;
@@ -18,6 +20,8 @@ import com.webrain.dailypay.ui.mvp.contacts.PositionPartReleaseFragmentContacts;
 import com.webrain.dailypay.ui.mvp.model.PositionPartReleaseFragmentModel;
 import com.webrain.dailypay.ui.viewholder.WorkAddressHolderView;
 
+import org.greenrobot.eventbus.EventBus;
+
 import java.util.ArrayList;
 import java.util.List;
 
@@ -159,6 +163,7 @@ public class PositionPartReleaseFragmentPresenter extends BasePresenter<Position
             mPositionPartReleaseFragmentModel.HttpReleasePosition(typeResult, title, desc, num, salaryPeriod, salary, otherSalary, welfareResult, settlementMethodResult, requireGroup, endDate, contactPerson, contactPhone, workDate, startWorkTime, endWorkTime, workAddressResult, isCountry ? "1" : "0", qualification, gender, new MvpDataCallBack<Boolean>() {
                 @Override
                 public void onData(Boolean data) {
+                    EventBus.getDefault().post(new StringEvent(EventConstant.EVENT_POSITION_LIST_REFRESH));
                     mvpReference.get().startActivity(new Intent(mvpReference.get().getContext(), PositionReleaseResultActivity.class));
                     mvpReference.get().getActivity().finish();
                 }

+ 15 - 14
app/src/main/java/com/webrain/dailypay/ui/mvp/presenter/PositionReleasePresenter.java

@@ -1,11 +1,16 @@
 package com.webrain.dailypay.ui.mvp.presenter;
 
+
+import com.webrain.baselibrary.AppConstant;
 import com.webrain.dailypay.bean.PositionListBean;
+import com.webrain.dailypay.bean.TabItemBean;
 import com.webrain.dailypay.ui.activity.position.PositionReleaseActivity;
 import com.webrain.dailypay.ui.base.BasePresenter;
 import com.webrain.dailypay.ui.mvp.contacts.PositionReleaseContacts;
 import com.webrain.dailypay.ui.mvp.model.PositionReleaseModel;
 
+import java.util.List;
+
 public class PositionReleasePresenter extends BasePresenter<PositionReleaseActivity> implements PositionReleaseContacts.IPositionReleasePresenter {
     private PositionReleaseModel mPositionReleaseModel;
 
@@ -17,21 +22,17 @@ public class PositionReleasePresenter extends BasePresenter<PositionReleaseActiv
     @Override
     public void getTabItem() {
         if (isViewAttach()) {
-            mvpReference.get().onTabItem(mPositionReleaseModel.getTabItem(mvpReference.get()));
-        }
-    }
-
-    /**
-     * 获取修改的position对象
-     */
-    @Override
-    public void getPositionBean() {
-        if (isViewAttach()) {
-            PositionListBean positionBean = mPositionReleaseModel.getPositionBean();
-            if (positionBean != null) {
-                mvpReference.get().onPositionEdit(positionBean);
+            List<TabItemBean> list = mPositionReleaseModel.getTabItem(mvpReference.get());
+            PositionListBean positionListBean = mPositionReleaseModel.getPositionBean();
+            if (mPositionReleaseModel.getPositionBean() != null && positionListBean.getPosition() != null) {
+                if (positionListBean.getPosition().getPositionCategory() == AppConstant.PART_TIME_JOB) {
+                    list.remove(1);
+                } else {
+                    list.remove(0);
+                }
             }
+            mvpReference.get().onTabItem(list, mPositionReleaseModel.getPositionBean());
         }
-
     }
+
 }

+ 23 - 1
app/src/main/java/com/webrain/dailypay/ui/viewholder/AgeIntervalHolder.java

@@ -2,6 +2,7 @@ package com.webrain.dailypay.ui.viewholder;
 
 import android.content.Context;
 import android.graphics.Color;
+import android.text.TextUtils;
 import android.view.MotionEvent;
 import android.view.View;
 import android.widget.ScrollView;
@@ -29,6 +30,8 @@ public class AgeIntervalHolder extends BaseViewHolder {
     ScrollView sv;
 
     List<String> mData;
+    int startYear = 16;
+    int endYear = 65;
     int startPosition = 4;
     int endPosition = 14;
     OnAgeIntervalSelectListener onAgeIntervalSelectListener;
@@ -84,6 +87,25 @@ public class AgeIntervalHolder extends BaseViewHolder {
     }
 
     /**
+     * 回显数据
+     *
+     * @param ageRange
+     */
+    public void initShowBack(String ageRange) {
+        if (!TextUtils.isEmpty(ageRange)) {
+            String[] age = ageRange.replace("岁", "").replace("周", "").replace(" ", "").split("至");
+            if (age.length == 2 && age[0].length() == 2 && age[1].length() == 2) {
+                int start = Integer.parseInt(age[0]);
+                int end = Integer.parseInt(age[1]);
+
+                startPosition = start - startYear;
+                endPosition = end - startYear;
+                returnData();
+            }
+        }
+    }
+
+    /**
      * 返回数据
      */
     public void returnData() {
@@ -100,7 +122,7 @@ public class AgeIntervalHolder extends BaseViewHolder {
     private List<String> getDataList() {
         if (mData == null) {
             mData = new ArrayList<>();
-            for (int i = 16; i < 64; i++) {
+            for (int i = startYear; i <= endYear; i++) {
                 mData.add(i + "");
             }
         }

+ 19 - 0
app/src/main/java/com/webrain/dailypay/ui/viewholder/BaseSalaryHolder.java

@@ -2,6 +2,7 @@ package com.webrain.dailypay.ui.viewholder;
 
 import android.content.Context;
 import android.graphics.Color;
+import android.text.TextUtils;
 import android.view.MotionEvent;
 import android.view.View;
 import android.widget.ScrollView;
@@ -80,6 +81,24 @@ public class BaseSalaryHolder extends BaseViewHolder {
     }
 
     /**
+     * 学历回显
+     *
+     * @param code
+     */
+    public void initShowBack(String code) {
+        if (!TextUtils.isEmpty(code)) {
+            for (int i = 0; i < mData.size(); i++) {
+                if (mData.get(i).getCode().equals(code)) {
+                    mSelect = mData.get(i);
+                    wvSalaryInterval.setCurrentItem(i);
+                    if (onSalarySelectListener != null)
+                        onSalarySelectListener.onSelect(mSelect.getName());
+                }
+            }
+        }
+    }
+
+    /**
      * 拦截ScrollView滚动冲突
      */
     View.OnTouchListener onTouchListener = new View.OnTouchListener() {

+ 20 - 1
app/src/main/java/com/webrain/dailypay/ui/viewholder/LengthOfServiceHolder.java

@@ -2,6 +2,7 @@ package com.webrain.dailypay.ui.viewholder;
 
 import android.content.Context;
 import android.graphics.Color;
+import android.text.TextUtils;
 import android.view.MotionEvent;
 import android.view.View;
 import android.widget.ScrollView;
@@ -73,12 +74,30 @@ public class LengthOfServiceHolder extends BaseViewHolder {
 
     private void initData() {
         if (mData == null) {
-            List<BaseInformationBean> mData = BaseInformationUtils.getLengthOfService(mContext);
+            List<BaseInformationBean> mData = BaseInformationUtils.getWorkExperience(mContext);
             this.mData = mData;
         }
     }
 
     /**
+     * 工龄回显
+     *
+     * @param code
+     */
+    public void initShowBack(String code) {
+        if (!TextUtils.isEmpty(code)) {
+            for (int i = 0; i < mData.size(); i++) {
+                if (mData.get(i).getCode().equals(code)) {
+                    mSelect = mData.get(i);
+                    wvSalaryInterval.setCurrentItem(i);
+                    if (onLengthOfServiceListener != null)
+                        onLengthOfServiceListener.onSelect(mSelect.getName());
+                }
+            }
+        }
+    }
+
+    /**
      * 拦截ScrollView滚动冲突
      */
     View.OnTouchListener onTouchListener = new View.OnTouchListener() {

+ 1 - 3
app/src/main/java/com/webrain/dailypay/ui/viewholder/WorkAddressHolderView.java

@@ -42,8 +42,7 @@ public class WorkAddressHolderView extends BaseViewHolder {
      * 数据回显
      */
     public void initShowBack(WorkAddressBean bean) {
-        workAddressHolder.initShowBack(bean.getProvinceId(), bean.getProvinceId(), bean.getCityId(), bean.getAddress());
-        salWorkAddress.initExpand(false);
+        workAddressHolder.initShowBack(bean.getProvinceId(), bean.getCityId(), bean.getCountryId(), bean.getAddress());
     }
 
     /**
@@ -51,7 +50,6 @@ public class WorkAddressHolderView extends BaseViewHolder {
      */
     public void initShowBackCountry() {
         workAddressHolder.initShowBackCountry();
-        salWorkAddress.initExpand(false);
     }
 
     /**

+ 19 - 2
app/src/main/java/com/webrain/dailypay/utils/BaseInformationUtils.java

@@ -67,6 +67,23 @@ public class BaseInformationUtils {
     }
 
     /**
+     * 获取工龄
+     *
+     * @param mContext
+     * @param code
+     * @return
+     */
+    public static String getWorkExperience(Context mContext, String code) {
+        if (!TextUtils.isEmpty(code))
+            for (BaseInformationBean item : getWorkExperience(mContext)) {
+                if (item.getCode().equals(code)) {
+                    return item.getName();
+                }
+            }
+        return "";
+    }
+
+    /**
      * 获取期望岗位
      *
      * @param mContext
@@ -194,8 +211,8 @@ public class BaseInformationUtils {
      * @param mContext
      * @return
      */
-    public static List<BaseInformationBean> getLengthOfService(Context mContext) {
-        return new Gson().fromJson(JsonDataUtils.getJson(mContext, "length_of_service.json"), new TypeToken<List<BaseInformationBean>>() {
+    public static List<BaseInformationBean> getWorkExperience(Context mContext) {
+        return new Gson().fromJson(JsonDataUtils.getJson(mContext, "work_experience.json"), new TypeToken<List<BaseInformationBean>>() {
         }.getType());
     }
 }

+ 1 - 1
app/src/main/res/layout/view_work_address_select.xml

@@ -1,7 +1,7 @@
 <?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:layout_height="wrap_content"
     android:orientation="vertical">
 
     <LinearLayout

+ 1 - 0
baselibrary/src/main/java/com/webrain/baselibrary/EventConstant.java

@@ -6,5 +6,6 @@ package com.webrain.baselibrary;
 public class EventConstant {
     public static final String EVENT_USER_AUTHENTICATION_STATUS_CHANGE = "user_authentication_status_change"; //用户认账状态变更
     public static final String EVENT_COMPANY_AUTHENTICATION_STATUS_CHANGE = "company_authentication_status_change"; //用户认账状态变更
+    public static final String EVENT_POSITION_LIST_REFRESH = "position_list_refresh"; //岗位列表刷新
     public static final String EVENT_LOGOUT = "logout"; //登出
 }

+ 39 - 15
baselibrary/src/main/java/com/webrain/baselibrary/widget/PositionIndicator.java

@@ -123,6 +123,29 @@ public class PositionIndicator extends LinearLayout {
         invalidate();
     }
 
+    public PositionIndicator initCustom(int position, String... titles) {
+        initTitleView(titles);
+        mCountNum = titles.length;
+        mPosition = position;
+        mPercent = 0;
+        invalidate();
+        return this;
+    }
+
+
+    /**
+     * 传入绑定的ViewPager
+     *
+     * @param viewPager
+     * @return
+     */
+    public PositionIndicator setViewPager(ViewPager viewPager, int position, String... titles) {
+        mPosition = position;
+        initTitleView(titles);
+        setViewPager(viewPager, titles.length);
+        return this;
+    }
+
     /**
      * 传入绑定的ViewPager
      *
@@ -145,25 +168,26 @@ public class PositionIndicator extends LinearLayout {
     public PositionIndicator setViewPager(ViewPager viewpager, final int countNum) {
         this.mCountNum = countNum;
         this.mViewPager = viewpager;
-        viewpager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
-
-            @Override
-            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
-                LogUtils.d("onPageScrolled:" + position + "," + positionOffset + "," + positionOffsetPixels);
-                if (countNum > 0) {
-                    move(positionOffset, position % countNum);
+        if (viewpager != null)
+            viewpager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
+
+                @Override
+                public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
+                    LogUtils.d("onPageScrolled:" + position + "," + positionOffset + "," + positionOffsetPixels);
+                    if (countNum > 0) {
+                        move(positionOffset, position % countNum);
+                    }
                 }
-            }
 
-            @Override
-            public void onPageSelected(int position) {
-            }
+                @Override
+                public void onPageSelected(int position) {
+                }
 
-            @Override
-            public void onPageScrollStateChanged(int state) {
+                @Override
+                public void onPageScrollStateChanged(int state) {
 
-            }
-        });
+                }
+            });
 
         return this;
     }