Explorar el Código

整合审批流代码,使用单个Recyclerview处理问题
处理个别现场闪退问题

Bitliker hace 8 años
padre
commit
404c6ee707

+ 51 - 32
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/ApprovalActivity.java

@@ -5,6 +5,8 @@ import android.os.Bundle;
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
 import android.text.Editable;
+import android.view.Menu;
+import android.view.MenuItem;
 import android.view.View;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
@@ -56,6 +58,20 @@ public class ApprovalActivity extends OABaseActivity implements IApproval, View.
     private ApprovaPresenter mPresenter;
     private ApprovalAdapter mAdapter;
 
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        if (item.getItemId() == R.id.oa_approval_set && mAdapter != null && !ListUtils.isEmpty(mAdapter.getApprovals())) {
+            mPresenter.trun2SetActivity(this, mAdapter.getApprovals());
+        }
+        return super.onOptionsItemSelected(item);
+    }
+
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        getMenuInflater().inflate(R.menu.menu_aproval_set, menu);
+        return super.onCreateOptionsMenu(menu);
+    }
+
     @Override
     protected void onDestroy() {
         super.onDestroy();
@@ -74,6 +90,8 @@ public class ApprovalActivity extends OABaseActivity implements IApproval, View.
             if (d == null) return;
             String name = StringUtils.isEmpty(d.getName()) ? "" : d.getName();
             getEmnameByReturn(name);
+        } else if (0x25 == requestCode) {
+            mPresenter.initLoad();
         }
         super.onActivityResult(requestCode, resultCode, data);
     }
@@ -99,9 +117,9 @@ public class ApprovalActivity extends OABaseActivity implements IApproval, View.
         opinionET.addTextChangedListener(new EditChangeListener() {
             @Override
             public void afterTextChanged(Editable s) {
-                if (s.length() > 0&&inputTagIV.getVisibility()== View.VISIBLE){
+                if (s.length() > 0 && inputTagIV.getVisibility() == View.VISIBLE) {
                     inputTagIV.setVisibility(View.GONE);
-                }else if (s.length()<=0&&inputTagIV.getVisibility()== View.GONE){
+                } else if (s.length() <= 0 && inputTagIV.getVisibility() == View.GONE) {
                     inputTagIV.setVisibility(View.VISIBLE);
                 }
             }
@@ -214,11 +232,11 @@ public class ApprovalActivity extends OABaseActivity implements IApproval, View.
     @Override
     public void showTitle(String imid, String title, int statusId) {
         Approval approval = null;
-        if (ListUtils.isEmpty(approvals) || approvals.get(0).getType() != Approval.Type.TITLE) {
+        if (ListUtils.isEmpty(approvals) || approvals.get(0).getType() != Approval.TITLE) {
             if (ListUtils.isEmpty(approvals))
                 approvals = new ArrayList<>();
             approval = new Approval();
-            approval.setType(Approval.Type.TITLE);
+            approval.setType(Approval.TITLE);
             approvals.add(0, approval);
         } else {
             approval = approvals.get(0);
@@ -239,10 +257,10 @@ public class ApprovalActivity extends OABaseActivity implements IApproval, View.
             for (Approval a : approvals) {
                 a.show();
             }
-        if (ListUtils.getSize(approvals) > 1 && (approvals.get(1).getType() == Approval.Type.MAIN
-                || approvals.get(0).getType() == Approval.Type.MAIN)) {
+        if (ListUtils.getSize(approvals) > 1 && (approvals.get(1).getType() == Approval.MAIN
+                || approvals.get(0).getType() == Approval.MAIN)) {
             Approval main = null;
-            if (approvals.get(1).getType() == Approval.Type.MAIN) {
+            if (approvals.get(1).getType() == Approval.MAIN) {
                 main = approvals.get(1);
                 main.setApproval(mainApproval);
                 showApproval(1, approvals.size() - 1);
@@ -268,7 +286,9 @@ public class ApprovalActivity extends OABaseActivity implements IApproval, View.
         for (Approval approval : detailedList)
             approval.show();
         for (int i = approvals.size() - 1; i >= 0; i--) {
-            if (approvals.get(i).getType() == Approval.Type.DETAIL || approvals.get(i).getType() == Approval.Type.MAIN || approvals.get(i).getType() == Approval.Type.TITLE) {
+            if (approvals.get(i).getType() == Approval.DETAIL
+                    || approvals.get(i).getType() == Approval.MAIN
+                    || approvals.get(i).getType() == Approval.TITLE) {
                 approvals.addAll(i + 1, detailedList);
                 showApproval(i + 1, i + 1 + detailedList.size());
                 break;
@@ -280,10 +300,10 @@ public class ApprovalActivity extends OABaseActivity implements IApproval, View.
     public void showEnclosureList(Approval enclosureApproval) {
         enclosureApproval.show();
         for (int i = approvals.size() - 1; i >= 0; i--) {
-            if (approvals.get(i).getType() == Approval.Type.DETAIL
-                    || approvals.get(i).getType() == Approval.Type.MAIN
-                    || approvals.get(i).getType() == Approval.Type.TITLE
-                    || approvals.get(i).getType() == Approval.Type.ENCLOSURE
+            if (approvals.get(i).getType() == Approval.DETAIL
+                    || approvals.get(i).getType() == Approval.MAIN
+                    || approvals.get(i).getType() == Approval.TITLE
+                    || approvals.get(i).getType() == Approval.ENCLOSURE
                     ) {
                 approvals.add(i + 1, enclosureApproval);
                 showApproval(i + 1, approvals.size() - 1);
@@ -296,11 +316,11 @@ public class ApprovalActivity extends OABaseActivity implements IApproval, View.
     public void showPointsList(Approval points) {
         points.show();
         for (int i = approvals.size() - 1; i >= 0; i--) {
-            if (approvals.get(i).getType() == Approval.Type.DETAIL
-                    || approvals.get(i).getType() == Approval.Type.MAIN
-                    || approvals.get(i).getType() == Approval.Type.TITLE
-                    || approvals.get(i).getType() == Approval.Type.ENCLOSURE
-                    || approvals.get(i).getType() == Approval.Type.POINTS
+            if (approvals.get(i).getType() == Approval.DETAIL
+                    || approvals.get(i).getType() == Approval.MAIN
+                    || approvals.get(i).getType() == Approval.TITLE
+                    || approvals.get(i).getType() == Approval.ENCLOSURE
+                    || approvals.get(i).getType() == Approval.POINTS
                     ) {
                 approvals.add(i + 1, points);
                 showApproval(i + 1, approvals.size() - 1);
@@ -313,12 +333,12 @@ public class ApprovalActivity extends OABaseActivity implements IApproval, View.
     public void showNodeList(Approval nodes) {
         nodes.show();
         for (int i = approvals.size() - 1; i >= 0; i--) {
-            if (approvals.get(i).getType() == Approval.Type.DETAIL
-                    || approvals.get(i).getType() == Approval.Type.MAIN
-                    || approvals.get(i).getType() == Approval.Type.TITLE
-                    || approvals.get(i).getType() == Approval.Type.ENCLOSURE
-                    || approvals.get(i).getType() == Approval.Type.POINTS
-                    || approvals.get(i).getType() == Approval.Type.NODES
+            if (approvals.get(i).getType() == Approval.DETAIL
+                    || approvals.get(i).getType() == Approval.MAIN
+                    || approvals.get(i).getType() == Approval.TITLE
+                    || approvals.get(i).getType() == Approval.ENCLOSURE
+                    || approvals.get(i).getType() == Approval.POINTS
+                    || approvals.get(i).getType() == Approval.NODES
                     ) {
                 approvals.add(i + 1, nodes);
                 showApproval(i + 1, approvals.size() - 1);
@@ -337,13 +357,14 @@ public class ApprovalActivity extends OABaseActivity implements IApproval, View.
             newAdapter();
         } else {
             mAdapter.setApprovals(approvals);
-            if (startItem < 0 && endItem < 0) {
-                mAdapter.notifyDataSetChanged();
-            } else if (startItem == endItem && startItem >= 0) {
-                mAdapter.notifyItemChanged(startItem);
-            } else {
-                mAdapter.notifyItemRangeChanged(startItem, endItem);
-            }
+            mAdapter.notifyDataSetChanged();
+//            if (startItem < 0 && endItem < 0) {
+//                mAdapter.notifyDataSetChanged();
+//            } else if (startItem == endItem && startItem >= 0) {
+//                mAdapter.notifyItemChanged(startItem);
+//            } else {
+//                mAdapter.notifyItemRangeChanged(startItem, endItem);
+//            }
         }
     }
 
@@ -379,6 +400,4 @@ public class ApprovalActivity extends OABaseActivity implements IApproval, View.
     }
 
 
-
-
 }

+ 10 - 9
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/adapter/oa/ApprovalAdapter.java

@@ -55,13 +55,13 @@ public class ApprovalAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolde
     @Override
     public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
         switch (this.approvals.get(viewType).getType()) {
-            case TITLE:
+            case Approval.TITLE:
                 return new TitleViewHolder(parent);
-            case MAIN:
-            case DETAIL:
-            case ENCLOSURE:
-            case POINTS:
-            case NODES:
+            case Approval.MAIN:
+            case Approval.DETAIL:
+            case Approval.ENCLOSURE:
+            case Approval.POINTS:
+            case Approval.NODES:
             default: return new BaseRVViewHolder(parent);
         }
     }
@@ -91,12 +91,14 @@ public class ApprovalAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolde
     private void bindBaseRVView(BaseRVViewHolder holder, int position) {
         Approval approval = approvals.get(position);
         //判断是否显示上面的背景线
-        if (position > 0 && approvals.get(position - 1).getType() != approval.getType() && approval.getType() != Approval.Type.MAIN) {
+        if (position > 0 && approvals.get(position - 1).getType() != approval.getType() && approval.getType() != Approval.MAIN) {
             holder.line.setVisibility(View.VISIBLE);
         } else {
             holder.line.setVisibility(View.GONE);
         }
-        if (position > 0 && (approvals.get(position - 1).getType() == approval.getType() && approval.getType() == Approval.Type.DETAIL) || approval.getType() == Approval.Type.MAIN) {
+        if (position > 0 && (approvals.get(position - 1).getType() == approval.getType()
+                && approval.getType() == Approval.DETAIL)
+                || approval.getType() == Approval.MAIN) {
             holder.lineMin.setVisibility(View.VISIBLE);
         } else {
             holder.lineMin.setVisibility(View.GONE);
@@ -112,7 +114,6 @@ public class ApprovalAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolde
 //        if (holder.contentRV.getAdapter() != null && holder.contentRV.getAdapter() instanceof ApprovalRVItemAdapter) {
 //            ApprovalRVItemAdapter adapter = (ApprovalRVItemAdapter) holder.contentRV.getAdapter();
 //            adapter.setItemDatas(approval.getType(),approval.getItems());
-//            adapter.notifyDataSetChanged();
 //        } else {
 //        holder.contentRV.setAdapter(new ApprovalRVItemAdapter(ct, approval.getType(), position, approval.getItems()));
 //        }

+ 10 - 7
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/adapter/oa/ApprovalRVItemAdapter.java

@@ -41,11 +41,11 @@ import java.util.List;
 
 public class ApprovalRVItemAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
     private Activity ct;
-    private Approval.Type type;
+    private int type;
     private List<Approval.Item> itemDatas;
     private int itemPosition = 0;
 
-    public ApprovalRVItemAdapter(Activity ct, Approval.Type type, int itemPosition, List<Approval.Item> itemDatas) {
+    public ApprovalRVItemAdapter(Activity ct, int type, int itemPosition, List<Approval.Item> itemDatas) {
         this.ct = ct;
         this.type = type;
         this.itemPosition = itemPosition;
@@ -57,9 +57,11 @@ public class ApprovalRVItemAdapter extends RecyclerView.Adapter<RecyclerView.Vie
         return itemDatas;
     }
 
-    public void setItemDatas(Approval.Type type, List<Approval.Item> itemDatas) {
+    public void setItemDatas(int type, List<Approval.Item> itemDatas) {
         this.type = type;
         this.itemDatas = itemDatas;
+        notifyDataSetChanged();
+        notifyItemRangeChanged(0, itemDatas.size());
     }
 
     @Override
@@ -75,11 +77,11 @@ public class ApprovalRVItemAdapter extends RecyclerView.Adapter<RecyclerView.Vie
 
     @Override
     public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
-        if (this.type == Approval.Type.ENCLOSURE) {
+        if (this.type == Approval.ENCLOSURE) {
             return new EnclosureViewHolder(parent);
-        } else if (this.type == Approval.Type.NODES) {
+        } else if (this.type == Approval.NODES) {
             return new NodeViewHolder(parent);
-        } else if (this.type == Approval.Type.POINTS) {
+        } else if (this.type == Approval.POINTS) {
             return new PointsViewHolder(parent);
         } else {
             return new BaseRVViewHodler(parent);
@@ -266,7 +268,7 @@ public class ApprovalRVItemAdapter extends RecyclerView.Adapter<RecyclerView.Vie
                         @Override
                         public void onClick(View v) {
                             if (itemData.inputType() == 2) {
-                                showTimeSelect(holder.valueTv, position);
+                                showTimeSelect(holder.valueEt, position);
                             } else {
                                 selectItem(itemData, position);
                             }
@@ -306,6 +308,7 @@ public class ApprovalRVItemAdapter extends RecyclerView.Adapter<RecyclerView.Vie
             @Override
             public void onDatePicked(String year, String month, String day) {
                 String time = year + "-" + month + "-" + day;
+                LogUtil.i("time="+time);
                 showView.setText(time);
                 itemDatas.get(position).values = time;
             }

+ 12 - 3
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/model/form/Data.java

@@ -3,12 +3,14 @@ package com.xzjmyk.pm.activity.ui.erp.model.form;
 import android.os.Parcel;
 import android.os.Parcelable;
 
+import com.xzjmyk.pm.activity.ui.erp.model.oa.Approval;
+
 /**
- * @desc:动态表单字段   item数据实体类
+ * @desc:动态表单字段 item数据实体类
  * @author:Arison on 2016/11/14
  */
 public class Data implements Parcelable {
-    
+
     private int groupId;//组ID---控件需要用到
     private String group;//组名----多组的情况
     private boolean isSelected;
@@ -23,7 +25,7 @@ public class Data implements Parcelable {
     private String field;//字段名
     private String formStoreKey;//formstore key 上传需要用到的key
     private int fdid;
-    private boolean isEditing=true;//是否正在编辑
+    private boolean isEditing = true;//是否正在编辑
     private String maxlength;//最大长度
     private String detailId;//关联主表id
     private String detailDid;//明细表id
@@ -201,9 +203,16 @@ public class Data implements Parcelable {
         dest.writeString(this.detailDid);
     }
 
+
     public Data() {
     }
 
+    public Data(boolean isMain, Approval.Item item) {
+        this.groupId = isMain ? 0 : 1;
+        this.field = item.valuesKey;
+        this.name = item.caption;
+    }
+
     protected Data(Parcel in) {
         this.groupId = in.readInt();
         this.group = in.readString();

+ 11 - 12
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/model/oa/Approval.java

@@ -16,10 +16,17 @@ import java.util.Map;
  */
 
 public class Approval {
+    public static final int TITLE = 0x11,//标题
+            MAIN = 0x12  //主表
+            , DETAIL = 0x13//从表
+            , ENCLOSURE = 0x14//附件
+            , POINTS = 0x15//要点
+            , NODES = 0x16;//审批节点
+
     private int id;
     private String idKey;
     private String title;
-    private Type type;
+    private int type;
     private List<Item> items;
 
     public void show() {
@@ -56,11 +63,11 @@ public class Approval {
         this.title = title;
     }
 
-    public Type getType() {
-        return type == null ? Type.MAIN : type;
+    public int getType() {
+        return type == 0 ? MAIN : type;
     }
 
-    public void setType(Type type) {
+    public void setType(int type) {
         this.type = type;
     }
 
@@ -162,12 +169,4 @@ public class Approval {
         }
     }
 
-    public enum Type {
-        TITLE//标题
-        , MAIN   //主表
-        , DETAIL//从表
-        , ENCLOSURE//附件
-        , POINTS//要点
-        , NODES//审批节点
-    }
 }

+ 50 - 12
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/ApprovaPresenter.java

@@ -1,5 +1,6 @@
 package com.xzjmyk.pm.activity.ui.erp.presenter;
 
+import android.app.Activity;
 import android.content.Intent;
 import android.os.Bundle;
 import android.widget.Toast;
@@ -9,8 +10,10 @@ import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.R;
+import com.xzjmyk.pm.activity.ui.erp.activity.form.DataFormFieldActivity;
 import com.xzjmyk.pm.activity.ui.erp.db.DBManager;
 import com.xzjmyk.pm.activity.ui.erp.entity.EmployeesEntity;
+import com.xzjmyk.pm.activity.ui.erp.model.form.Data;
 import com.xzjmyk.pm.activity.ui.erp.model.oa.Approval;
 import com.xzjmyk.pm.activity.ui.erp.model.oa.ApprovalRecord;
 import com.xzjmyk.pm.activity.ui.erp.presenter.imp.IApproval;
@@ -33,7 +36,6 @@ import java.util.List;
 import java.util.Map;
 
 import static com.alibaba.fastjson.JSON.parseObject;
-import static com.xzjmyk.pm.activity.ui.erp.model.oa.Approval.Type.DETAIL;
 import static com.xzjmyk.pm.activity.ui.erp.util.OACheckUtil.getJson2Text;
 import static com.xzjmyk.pm.activity.ui.erp.util.OACheckUtil.getJsonIntager;
 import static com.xzjmyk.pm.activity.ui.erp.util.OACheckUtil.getString;
@@ -70,6 +72,32 @@ public class ApprovaPresenter implements OnHttpResultListener {
         return title.equals(OACheckUtil.getString(R.string.title_approval));
     }
 
+    public void trun2SetActivity(Activity activity, List<Approval> approvals) {
+        ArrayList<Data> fields = new ArrayList<>();
+        ArrayList<Data> fieldsDis = new ArrayList<>();
+        boolean detail = false;
+        for (Approval approval : approvals) {
+            if (approval.getType() == Approval.MAIN
+                    || approval.getType() == Approval.DETAIL
+                    && !ListUtils.isEmpty(approval.getItems())) {
+                if (approval.getType() == Approval.DETAIL) {
+                    if (detail)
+                        continue;
+                    detail = true;
+                }
+                for (Approval.Item item : approval.getItems()) {
+                    Data data = new Data(approval.getType() == Approval.MAIN, item);
+                    fieldsDis.add(data);
+                }
+            }
+        }
+        activity.startActivityForResult(new Intent(activity, DataFormFieldActivity.class)
+                        .putParcelableArrayListExtra("fields", fields)
+                        .putParcelableArrayListExtra("fieldsDis", fieldsDis)
+                        .putExtra("caller", record.caller),
+                0x25);
+    }
+
     public ApprovaPresenter(IApproval iApproval, Intent intent) {
         this.iApproval = iApproval;
         if (intent != null) {
@@ -93,6 +121,10 @@ public class ApprovaPresenter implements OnHttpResultListener {
         }
     }
 
+    public void initLoad() {
+        initLoad(record.nodeId);
+    }
+
     private void initLoad(int nodeId) {
         initLoad(nodeId, "");
     }
@@ -275,7 +307,7 @@ public class ApprovaPresenter implements OnHttpResultListener {
         Map<String, Object> param = new HashMap<>();
         param.put("caller", record.caller);
         param.put("id", record.id);
-        param.put("isprocess", 1);
+//        param.put("isprocess", 1);
         Request.Bulider bulider = new Request.Bulider()
                 .setUrl(url)
                 .setWhat(LOAD_FORMAND_GRIDDATA)
@@ -597,7 +629,7 @@ public class ApprovaPresenter implements OnHttpResultListener {
 
             if (!ListUtils.isEmpty(formconfigs) && formdata != null) {
                 final Approval mainApproval = formandGriddata(formdata, formconfigs, true);
-                mainApproval.setType(Approval.Type.MAIN);
+                mainApproval.setType(Approval.MAIN);
                 OAHttpHelper.getInstance().post(new Runnable() {
                     @Override
                     public void run() {
@@ -612,7 +644,7 @@ public class ApprovaPresenter implements OnHttpResultListener {
                 for (int i = 0; i < griddatas.size(); i++) {
                     //获取到单个明细表单
                     final Approval detailedApproval = formandGriddata(griddatas.getJSONObject(i), gridconfigs, false);
-                    detailedApproval.setType(DETAIL);
+                    detailedApproval.setType(Approval.DETAIL);
                     detailedApproval.setTitle(getString(R.string.serial_number) + (i + 1));
                     detailedList.add(detailedApproval);
                 }
@@ -642,6 +674,7 @@ public class ApprovaPresenter implements OnHttpResultListener {
             JSONArray combostore = OACheckUtil.getJsonArray(config, "COMBOSTORE");
             itemData.type = getJson2Text(config, "FD_TYPE", "DG_TYPE");
             int isdefault = OACheckUtil.getJsonIntager(config, "MFD_ISDEFAULT", "MDG_ISDEFAULT");
+            int appwidth = OACheckUtil.getJsonIntager(config, "FD_APPWIDTH", "DG_APPWIDTH");
             if (isMain && caption.equals("附件")) {
                 final String fb_attach = valueKey;
                 OAHttpHelper.getInstance().post(new Runnable() {
@@ -656,7 +689,12 @@ public class ApprovaPresenter implements OnHttpResultListener {
                 idTag = valueKey;
                 id = OACheckUtil.getJsonIntager(data, valueKey);
             }
-            if (isdefault != -1 || OACheckUtil.isEmpty(valueKey) || OACheckUtil.isEmpty(caption)
+            if (isdefault != -1
+                    || itemData.type.equals("H")
+                    || appwidth == 0
+                    || (!isMain && OACheckUtil.getJsonIntager(config, "DG_WIDTH") == 0)
+                    || OACheckUtil.isEmpty(valueKey)
+                    || OACheckUtil.isEmpty(caption)
                     || (merged.length() > 0 && merged.toString().contains(valueKey))) {
                 continue;
             }
@@ -670,7 +708,7 @@ public class ApprovaPresenter implements OnHttpResultListener {
                 }
             }
             itemData.values = OACheckUtil.getJson2Text(data, valueKey);//获取第一个字段的值
-            boolean mergeAble = OACheckUtil.getJsonIntager(config, "FD_APPWIDTH", "FD_APPWIDTH") == 1 || "MT".equals(OACheckUtil.getJson2Text(config, "FD_TYPE"));
+            boolean mergeAble = appwidth == 1 || "MT".equals(itemData.type);
             itemData.caption = caption;
             itemData.valuesKey = valueKey;
             itemData.data2Values();
@@ -752,7 +790,7 @@ public class ApprovaPresenter implements OnHttpResultListener {
                 }
                 final Approval node = new Approval();
                 node.setItems(itemDatas);
-                node.setType(Approval.Type.NODES);
+                node.setType(Approval.NODES);
                 OAHttpHelper.getInstance().post(new Runnable() {
                     @Override
                     public void run() {
@@ -786,7 +824,7 @@ public class ApprovaPresenter implements OnHttpResultListener {
         Approval enclosureApproval = new Approval();
         enclosureApproval.setTitle("附件");
         enclosureApproval.setItems(enclosureList);
-        enclosureApproval.setType(Approval.Type.ENCLOSURE);
+        enclosureApproval.setType(Approval.ENCLOSURE);
         iApproval.showEnclosureList(enclosureApproval);
     }
 
@@ -866,7 +904,7 @@ public class ApprovaPresenter implements OnHttpResultListener {
             if (!ListUtils.isEmpty(pointsList)) {
                 Approval points = new Approval();
                 points.setItems(pointsList);
-                points.setType(Approval.Type.POINTS);
+                points.setType(Approval.POINTS);
                 points.setTitle(OACheckUtil.getString(R.string.approval_points));
                 iApproval.showPointsList(points);
             }
@@ -964,7 +1002,7 @@ public class ApprovaPresenter implements OnHttpResultListener {
             LogUtil.i("show Presenter pointsList .....");
             for (Approval approval : approvals) {
                 approval.show();
-                if (approval.getType() == Approval.Type.POINTS) {
+                if (approval.getType() == Approval.POINTS) {
                     for (Approval.Item itemData : approval.getItems()) {
                         if (itemData.mustInput && StringUtils.isEmpty(itemData.values)) {
                             String message = OACheckUtil.getString(R.string.approval_points) + " " + itemData.caption + " " + OACheckUtil.getString(R.string.is_must_input);
@@ -993,7 +1031,7 @@ public class ApprovaPresenter implements OnHttpResultListener {
         Map<String, Object> formstore = null;
         if (!ListUtils.isEmpty(approvals)) {
             for (Approval approval : approvals) {
-                if (approval.getType() == Approval.Type.MAIN) {
+                if (approval.getType() == Approval.MAIN) {
                     formstore = putItem2Params(approval.getItems());
                     if (formstore == null)
                         continue;
@@ -1011,7 +1049,7 @@ public class ApprovaPresenter implements OnHttpResultListener {
     private boolean inputAllDetail(List<Map<String, Object>> params, List<Approval> approvals) {
         if (!ListUtils.isEmpty(approvals)) {
             for (Approval approval : approvals) {
-                if (approval.getType() == Approval.Type.DETAIL) {
+                if (approval.getType() == Approval.DETAIL) {
                     Map<String, Object> formstore = putItem2Params(approval.getItems());
                     if (formstore == null || formstore.isEmpty()) continue;
                     formstore.put(approval.getIdKey(), approval.getId());

+ 10 - 0
WeiChat/src/main/res/menu/menu_aproval_set.xml

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<menu xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
+    <item
+        android:id="@+id/oa_approval_set"
+        android:title="编辑模板"
+        app:showAsAction="always" />
+
+
+</menu>