Parcourir la source

Merge branch 'developer' of https://gitlab.com/Arisono/SkWeiChat-Baidu into developer

FANGLH il y a 8 ans
Parent
commit
194d783716

+ 8 - 8
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/circle/BasicInfoActivity.java

@@ -756,13 +756,13 @@ public class BasicInfoActivity extends BaseActivity implements NewFriendListener
                         // 更新界面
                         do_next_tv.setText(R.string.send_msg);
                         do_next_tv.setOnClickListener(new SendMsgListener());
-                        
-                        ContactsModel model=new ContactsModel();
+
+                        ContactsModel model = new ContactsModel();
                         model.setImid(mUser.getUserId());
                         model.setOwnerId(MyApplication.getInstance().mLoginUser.getUserId());
-                        model.setWhichsys(CommonUtil.getSharedPreferences(MyApplication.getInstance(),"erp_master"));
+                        model.setWhichsys(CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_master"));
                         model.setType(1);
-                        if (StringUtils.isEmpty(model.getWhichsys())){
+                        if (StringUtils.isEmpty(model.getWhichsys())) {
                             model.setWhichsys("");
                         }
                         ContactsDao.getInstance().update(model);
@@ -888,16 +888,16 @@ public class BasicInfoActivity extends BaseActivity implements NewFriendListener
                     public void onClick(DialogInterface dialog, int which) {
                         deleteFriend(friend, 0);
                         //取消好友  更新通讯录数据库
-                        ContactsModel model=new ContactsModel();
+                        ContactsModel model = new ContactsModel();
                         model.setImid(mUser.getUserId());
                         model.setOwnerId(MyApplication.getInstance().mLoginUser.getUserId());
-                        model.setWhichsys(CommonUtil.getSharedPreferences(MyApplication.getInstance(),"erp_master"));
+                        model.setWhichsys(CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_master"));
                         model.setType(2);
-                        if (StringUtils.isEmpty(model.getWhichsys())){
+                        if (StringUtils.isEmpty(model.getWhichsys())) {
                             model.setWhichsys("");
                         }
                         ContactsDao.getInstance().update(model);
-                        
+
                     }
                 }).setNegativeButton(getString(R.string.common_cancel), null);
         builder.create().show();

+ 2 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/contanct/ContactsActivity.java

@@ -248,6 +248,7 @@ public class ContactsActivity extends OABaseActivity implements ContactsAdapter.
             PermissionUtil.requestPermission(this, PermissionUtil.DEFAULT_REQUEST, permissions);
         } else {
             getCaceData(false);
+            isHasPermiss = true;
             LogUtil.d("Test", "有权限@....");
         }
     }
@@ -338,6 +339,7 @@ public class ContactsActivity extends OABaseActivity implements ContactsAdapter.
         ThreadPool.getThreadPool().addTask(new Runnable() {
             @Override
             public void run() {
+                LogUtil.d("Test","isHasPermiss:"+isHasPermiss);
                 if (isHasPermiss) {
                     List<Contacts> contacts =
                             ContactsUtils.getContacts1();

+ 12 - 11
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/message/ProcessMsgActivity.java

@@ -39,6 +39,7 @@ import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.Constants;
 import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
 import com.xzjmyk.pm.activity.ui.erp.util.LogUtil;
+import com.xzjmyk.pm.activity.ui.erp.util.OACheckUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
 import com.xzjmyk.pm.activity.ui.erp.view.EmptyLayout;
 import com.xzjmyk.pm.activity.ui.erp.view.VoiceSearchView;
@@ -209,7 +210,7 @@ public class ProcessMsgActivity extends BaseActivity implements View.OnClickList
     private void getEmimids(JSONArray array) {
         if (!ListUtils.isEmpty(im_ids)) im_ids.clear();
         for (int i = 0; i < array.size(); i++) {
-            im_ids.add(array.getJSONObject(i).getString("EM_IMID") + "");
+            im_ids.add(OACheckUtil.getJsonIntager(array.getJSONObject(i), "EM_IMID") + "");
             if (i == array.size() - 1 && !ListUtils.isEmpty(im_ids)) {
                 mAdapter.setImids(im_ids);
                 mAdapter.notifyDataSetChanged();
@@ -413,7 +414,7 @@ public class ProcessMsgActivity extends BaseActivity implements View.OnClickList
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
         super.onActivityResult(requestCode, resultCode, data);
         LogUtil.i("onActivityResult");
-        LogUtil.i("tab_type=="+tab_type);
+        LogUtil.i("tab_type==" + tab_type);
         if (tab_type == 1) {
             loadProcessToDo(page);
         }
@@ -513,7 +514,7 @@ public class ProcessMsgActivity extends BaseActivity implements View.OnClickList
     protected void onResume() {
         super.onResume();
 //        mList.setRefreshing(true);
-        if (tab_type == 1){
+        if (tab_type == 1) {
             voiceSearchView.setText("");
             loadProcessToDo(page);
         }
@@ -595,7 +596,7 @@ public class ProcessMsgActivity extends BaseActivity implements View.OnClickList
                     String jp_status = jsonArray.getJSONObject(position).getString("JP_STATUS");
                     String jp_typecode = jsonArray.getJSONObject(position).getString("TYPECODE");
                     String jp_master = jsonArray.getJSONObject(position).getString("CURRENTMASTER");
-                    int tdem_imid = jsonArray.getJSONObject(position).getInteger("EM_IMID");
+                    int tdem_imid = OACheckUtil.getJsonIntager(jsonArray.getJSONObject(position), "EM_IMID");
                     model.name.setText(jp_launchername + "的" + jp_name);
                     if (jp_launchtime != null) {
                         model.date.setText(DateFormatUtil.getStrDate4Date(new Date(jp_launchtime), "MM-dd HH:mm"));
@@ -613,7 +614,7 @@ public class ProcessMsgActivity extends BaseActivity implements View.OnClickList
                     model.meimid.setVisibility(View.GONE);
                     //设置显示审批人头像
                     if (tdem_imid != -1) {
-                        AvatarHelper.getInstance().display(tdem_imid+"", model.imid, true, false);//显示圆角图片
+                        AvatarHelper.getInstance().display(tdem_imid + "", model.imid, true, false);//显示圆角图片
                     } else {
                         String imageUri = "drawable://" + R.drawable.common_header_boy;
                         AvatarHelper.getInstance().display(imageUri, model.imid, true);
@@ -630,7 +631,7 @@ public class ProcessMsgActivity extends BaseActivity implements View.OnClickList
                     if (!StringUtils.isEmpty(jp_name)) jp_name = jp_name.replace("流程", "");
                     String jn_dealtime = jsonArray.getJSONObject(position).getString("JN_DEALTIME");//JP_LAUNCHTIME
                     String jn_dealresult = jsonArray.getJSONObject(position).getString("JN_DEALRESULT");
-                    int done_emid = jsonArray.getJSONObject(position).getInteger("EM_IMID");
+                    int done_emid = OACheckUtil.getJsonIntager(jsonArray.getJSONObject(position), "EM_IMID");
                     model.name.setText(jn_dealmanname + "的" + jp_name);
                     Long L = TimeUtils.s_str_2_long(jn_dealtime);
                     model.date.setText(DateFormatUtil.getStrDate4Date(new Date(L), "MM-dd HH:mm"));
@@ -666,7 +667,7 @@ public class ProcessMsgActivity extends BaseActivity implements View.OnClickList
                     model.meimid.setVisibility(View.GONE);
                     //设置显示审批人头像
                     if (done_emid != -1) {
-                        AvatarHelper.getInstance().display(done_emid+"", model.imid, true, false);//显示圆角图片
+                        AvatarHelper.getInstance().display(done_emid + "", model.imid, true, false);//显示圆角图片
                     } else {
                         String imageUri = "drawable://" + R.drawable.common_header_boy;
                         AvatarHelper.getInstance().display(imageUri, model.imid, true);
@@ -686,7 +687,7 @@ public class ProcessMsgActivity extends BaseActivity implements View.OnClickList
                         String nodename = jsonArray.getJSONObject(position).getString("JP_NODEDEALMANNAME");
                         JP_NODEID = jsonArray.getJSONObject(position).getString("JP_NODEID");
                         String codename = jsonArray.getJSONObject(position).getString("JP_NODENAME");
-                        int me_emid = jsonArray.getJSONObject(position).getInteger("EM_IMID");
+                        int me_emid = OACheckUtil.getJsonIntager(jsonArray.getJSONObject(position), "EM_IMID");
                         if (!StringUtils.isEmpty(status)) {
                             if (status.equals("待审批")) {
                                 model.status.setTextColor(getResources().getColor(R.color.approvaling));
@@ -723,9 +724,9 @@ public class ProcessMsgActivity extends BaseActivity implements View.OnClickList
                         //设置显示审批人头像
                         model.imid.setVisibility(View.GONE);
                         model.meimid.setVisibility(View.VISIBLE);
-                        if (me_emid != -1){
-                            AvatarHelper.getInstance().display(me_emid+"", model.meimid, true, false);//显示圆角图片
-                        }else {
+                        if (me_emid != -1) {
+                            AvatarHelper.getInstance().display(me_emid + "", model.meimid, true, false);//显示圆角图片
+                        } else {
                             String imageUri = "drawable://" + R.drawable.common_header_boy;
                             AvatarHelper.getInstance().display(imageUri, model.meimid, true);
                         }

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

@@ -14,7 +14,6 @@ import android.view.ViewGroup;
 import android.widget.AdapterView;
 import android.widget.BaseAdapter;
 import android.widget.ImageView;
-import android.widget.LinearLayout;
 import android.widget.ListView;
 import android.widget.PopupWindow;
 import android.widget.RelativeLayout;
@@ -28,6 +27,7 @@ import com.iflytek.cloud.SpeechError;
 import com.iflytek.cloud.ui.RecognizerDialogListener;
 import com.lidroid.xutils.ViewUtils;
 import com.lidroid.xutils.view.annotation.ViewInject;
+import com.xzjmyk.pm.activity.AppConfig;
 import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.audio.voicerecognition.JsonParser;
@@ -47,6 +47,7 @@ import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
 import com.xzjmyk.pm.activity.ui.erp.util.oa.OAConfig;
 import com.xzjmyk.pm.activity.ui.erp.util.oa.RecognizerDialogUtil;
 import com.xzjmyk.pm.activity.util.DisplayUtil;
+import com.xzjmyk.pm.activity.util.PreferenceUtils;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -54,10 +55,8 @@ import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 public class ApprovalActivity extends OABaseActivity implements IApproval, ApprovalAdapter.OnChangeClickListener, View.OnClickListener, RecognizerDialogListener {
-    @ViewInject(R.id.operationLL)
-    LinearLayout operationLL; //操作
     @ViewInject(R.id.opinionRL)
-    RelativeLayout opinionRL;//意见
+    RelativeLayout opinionRL;//操作和意见输入
     @ViewInject(R.id.opinionET)
     FormEditText opinionET;//意见
     @ViewInject(R.id.contentRV)
@@ -92,6 +91,10 @@ public class ApprovalActivity extends OABaseActivity implements IApproval, Appro
         getMenuInflater().inflate(R.menu.menu_aproval_set, menu);
         MenuItem item = menu.getItem(1);
         item.setTitle("返回旧版");
+        if (!PreferenceUtils.getBoolean(AppConfig.IS_ADMIN, false)) {
+            MenuItem setItem = menu.getItem(0);
+            setItem.setVisible(false);
+        }
         return super.onCreateOptionsMenu(menu);
     }
 
@@ -151,10 +154,8 @@ public class ApprovalActivity extends OABaseActivity implements IApproval, Appro
             getSupportActionBar().setTitle(title);
             if (getString(R.string.title_approval).equals(title)) {
                 opinionRL.setVisibility(View.VISIBLE);
-                operationLL.setVisibility(View.VISIBLE);
             } else {
                 opinionRL.setVisibility(View.GONE);
-                operationLL.setVisibility(View.GONE);
             }
         }
         mPresenter = new ApprovaPresenter(this, getIntent());
@@ -187,6 +188,7 @@ public class ApprovalActivity extends OABaseActivity implements IApproval, Appro
                 mPresenter.disAgree(OACheckUtil.getText(opinionET));
                 break;
             case R.id.nextTV: //下一条
+                hineOpinion();
                 mPresenter.loadNextProcess();
                 break;
             case R.id.voiceIV://语音输入
@@ -247,7 +249,6 @@ public class ApprovalActivity extends OABaseActivity implements IApproval, Appro
                 findViewById(R.id.takeOverTV).setVisibility(View.GONE);
             } else {
                 opinionRL.setVisibility(View.GONE);
-                operationLL.setVisibility(View.GONE);
             }
         }
     }
@@ -266,6 +267,7 @@ public class ApprovalActivity extends OABaseActivity implements IApproval, Appro
         findViewById(R.id.disagreeTV).setVisibility(View.GONE);
         findViewById(R.id.agreeTV).setVisibility(View.GONE);
         findViewById(R.id.takeOverTV).setVisibility(View.GONE);
+        opinionRL.setVisibility(View.GONE);
         opinionET.setText("");
         mAdapter = null;
     }
@@ -284,6 +286,19 @@ public class ApprovalActivity extends OABaseActivity implements IApproval, Appro
                 }).show();
     }
 
+    @Override
+    public void showOpinion() {
+        if (mPresenter.isApprovaling()) {
+            opinionRL.setVisibility(View.VISIBLE);
+        }
+    }
+
+    public void hineOpinion() {
+        if (mPresenter.isApprovaling()) {
+            opinionRL.setVisibility(View.GONE);
+        }
+    }
+
 
     @Override
     public void sendToSelect(JSONArray data) {

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

@@ -112,32 +112,23 @@ public class ApprovalAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolde
             holder.padding.setVisibility(View.GONE);
         }
         int textColor = R.color.hintColor;
+        int reId = R.drawable.weishenpi;
         if (!StringUtils.isEmpty(approval.getIdKey())) {
             holder.valuesTv.setText(approval.getIdKey());
             if (approval.getIdKey().startsWith("待审批")) {
                 textColor = R.color.approvaling;
-            } else if (approval.getIdKey().startsWith("未通过")) {
+                reId = R.drawable.daishenpi;
+            } else if (approval.getIdKey().startsWith("未通过") || approval.getIdKey().startsWith("结束")) {
                 textColor = R.color.crimson;
+                reId = R.drawable.node_delete;
+            } else if (approval.getIdKey().startsWith("已审批") || approval.getIdKey().startsWith("变更")) {
+                reId = R.drawable.node_finished3;
             }
         } else {
             holder.valuesTv.setText("");
         }
         holder.valuesTv.setTextColor(ct.getResources().getColor(textColor));
         holder.keyTv.setText(approval.getCaption());
-        int reId = R.drawable.weishenpi;
-        if (!StringUtils.isEmpty(approval.getIdKey())) {
-            String status = approval.getIdKey().split("\\(")[0];
-            if (StringUtils.isEmpty(status)) status = "";
-            if ("已审批".equals(status)) {
-                reId = R.drawable.node_finished3;
-            } else if ("待审批".equals(status)) {
-                reId = R.drawable.daishenpi;
-            } else if ("未通过".equals(status)) {
-                reId = R.drawable.node_delete;
-            } else {
-                reId = R.drawable.weishenpi;
-            }
-        }
         holder.statusIV.setImageResource(reId);
         AvatarHelper.getInstance().display(String.valueOf(approval.getId()), holder.handIv, true, false);
         if (reId == R.drawable.daishenpi && isApprovaling) {

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

@@ -207,8 +207,9 @@ public class Data implements Parcelable {
     public Data() {
     }
 
-    public Data(boolean isMain, Approval  approval) {
+    public Data(boolean isMain, Approval approval) {
         this.groupId = isMain ? 0 : 1;
+        group = isMain ? "基本信息" : "明细项1";
         this.field = approval.getValuesKey();
         this.name = approval.getCaption();
     }

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

@@ -3,6 +3,7 @@ package com.xzjmyk.pm.activity.ui.erp.presenter;
 import android.app.Activity;
 import android.content.Intent;
 import android.os.Bundle;
+import android.os.Looper;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
@@ -69,8 +70,9 @@ public class ApprovaPresenter implements OnHttpResultListener {
     private String title;
     private String master;
     private List<Approval> approvals;
+    private List<Approval> hineApprovals;
 
-    private boolean submit, loading, nexting;
+    private boolean submit, loading;
 
     public ApprovaPresenter(IApproval iApproval, Intent intent) {
         this.iApproval = iApproval;
@@ -106,13 +108,29 @@ public class ApprovaPresenter implements OnHttpResultListener {
                 Data data = new Data(true, approval);
                 fieldsDis.add(data);
             } else if (approval.getType() == DETAIL && canAddDetail) {
-                Data data = new Data(true, approval);
+                Data data = new Data(false, approval);
                 fieldsDis.add(data);
                 addDetailed = true;
             } else if (addDetailed) {
                 canAddDetail = false;
             }
         }
+        addDetailed = false;
+        canAddDetail = true;
+        if (!ListUtils.isEmpty(hineApprovals)) {
+            for (Approval approval : hineApprovals) {
+                if (approval.getType() == Approval.MAIN) {
+                    Data data = new Data(true, approval);
+                    fields.add(data);
+                } else if (approval.getType() == DETAIL && canAddDetail) {
+                    Data data = new Data(false, approval);
+                    fields.add(data);
+                    addDetailed = true;
+                } else if (addDetailed) {
+                    canAddDetail = false;
+                }
+            }
+        }
         activity.startActivityForResult(new Intent(activity, DataFormFieldActivity.class)
                         .putParcelableArrayListExtra("fields", fields)
                         .putParcelableArrayListExtra("fieldsDis", fieldsDis)
@@ -151,13 +169,13 @@ public class ApprovaPresenter implements OnHttpResultListener {
     private void initLoad(int nodeId, String imid) {
         record = new ApprovalRecord();
         approvals = new ArrayList<>();
+        hineApprovals = new ArrayList<>();
         record.nodeId = nodeId;
         if (imid != null)
             record.imid = imid;
         iApproval.initStatus();
         submit = false;
         loading = false;
-        nexting = false;
         loadCurrentNode();
     }
 
@@ -294,8 +312,7 @@ public class ApprovaPresenter implements OnHttpResultListener {
 
     /*获取下一个节点 loading*/
     public void loadNextProcess() {
-        if (loading || nexting) return;
-        nexting = true;
+        if (loading) return;
         iApproval.showToast(R.string.loadtonext_approval, R.color.load_submit);
         iApproval.showLoading();
         String url = "common/getNextProcess.action";
@@ -405,6 +422,7 @@ public class ApprovaPresenter implements OnHttpResultListener {
         param.put("master", master);
         param.put("id", record.id);
         param.put("isprocess", 1);
+        param.put("config", 1);
         Request.Bulider bulider = new Request.Bulider()
                 .setUrl(url)
                 .setWhat(LOAD_FORMAND_GRIDDATA)
@@ -443,7 +461,7 @@ public class ApprovaPresenter implements OnHttpResultListener {
     }
 
     /*获取历史节点数据 loading*/
-    private void loadJnodes() {
+    private void loadJnodes(String historyNode) {
         iApproval.showLoading();
         String url = "common/getCurrentJnodes.action";
         Map<String, Object> param = new HashMap<>();
@@ -451,9 +469,12 @@ public class ApprovaPresenter implements OnHttpResultListener {
         param.put("keyValue", record.id);
         param.put("_noc", 1);
         param.put("master", master);
+        Bundle bundle = new Bundle();
+        bundle.putString("historyNode", historyNode);
         Request.Bulider bulider = new Request.Bulider()
                 .setUrl(url)
                 .setWhat(LOAD_JNODES)
+                .setBundle(bundle)
                 .setParam(param);
         OAHttpHelper.getInstance().requestHttp(bulider.bulid(), this);
     }
@@ -541,15 +562,17 @@ public class ApprovaPresenter implements OnHttpResultListener {
                 });
                 break;
             case LOAD_ALLHISTORY_NODES:
-                handlerHistorySetuptask(object);
+                loadJnodes(object.toString());
+//                handlerHistorySetuptask(object);
                 break;
             case LOAD_JNODES:
-                handlerNode(object);
+                handlerNode(object, bundle);
                 break;
             case LOAD_SETUP_TASK:
                 handlerSetupTask(object);
                 break;
             case LOAD_NEXT_PROCESS:
+                if (loading) return;
                 int nextnode = OACheckUtil.getJsonIntager(object, "nodeId");
                 if (nextnode > 0) {
                     initLoad(nextnode);
@@ -671,6 +694,7 @@ public class ApprovaPresenter implements OnHttpResultListener {
             if (currentnode != null) {
                 record.needInputKeys = getJson2Text(button, "jt_neccessaryfield");
             }
+            handerTitle(0);
             loadDetailedList();//获取明细表
         } else {
             loading = false;
@@ -737,7 +761,11 @@ public class ApprovaPresenter implements OnHttpResultListener {
             OAHttpHelper.getInstance().post(new Runnable() {
                 @Override
                 public void run() {
-                    loadAllHistoryNodes();
+                    if (isApprovaling()) {
+                        loadCustomSetupOfTask();
+                    } else {
+                        loadAllHistoryNodes();
+                    }
                 }
             });
         } else {
@@ -761,7 +789,9 @@ public class ApprovaPresenter implements OnHttpResultListener {
             String type = getJson2Text(config, "FD_TYPE", "DG_TYPE");
             //添加类型
             approval.setDfType(type);
-//            int isdefault = OACheckUtil.getJsonIntager(config, "MFD_ISDEFAULT", "MDG_ISDEFAULT");
+            approval.setCaption(caption);
+            approval.setValuesKey(valueKey);
+            int isdefault = OACheckUtil.getJsonIntager(config, "MFD_ISDEFAULT", "MDG_ISDEFAULT");
             int appwidth = OACheckUtil.getJsonIntager(config, "FD_APPWIDTH", "DG_APPWIDTH");
             if (isMain && approval.isDftypeEQ("MF")) {
                 final String fb_attach = valueKey;
@@ -779,12 +809,15 @@ public class ApprovaPresenter implements OnHttpResultListener {
                 id = OACheckUtil.getJsonIntager(data, valueKey);
             }
             if (approval.isDftypeEQ("H")
-//                    || isdefault != -1
+                    || isdefault != -1
                     || appwidth == 0
                     || (!isMain && OACheckUtil.getJsonIntager(config, "DG_WIDTH") == 0)
                     || OACheckUtil.isEmpty(valueKey)
                     || OACheckUtil.isEmpty(caption)
                     || (merged.length() > 0 && merged.toString().contains(valueKey))) {
+                if (isdefault == 0) {
+                    hineApprovals.add(approval);
+                }
                 continue;
             }
             //添加下拉数据
@@ -799,8 +832,6 @@ public class ApprovaPresenter implements OnHttpResultListener {
             }
             approval.setValues(OACheckUtil.getJson2Text(data, valueKey)); ;//获取第一个字段的值
             boolean mergeAble = appwidth == 1 || (approval.isDftypeEQ("MT"));
-            approval.setCaption(caption);
-            approval.setValuesKey(valueKey);
             approval.data2Values();
             approval.setMustInput(true);
             if (!StringUtils.isEmpty(record.needInputKeys)
@@ -818,8 +849,9 @@ public class ApprovaPresenter implements OnHttpResultListener {
             }
             if (!isApprovaling())
                 approval.setNeerInput(false);
-            if (!approval.isNeerInput() && StringUtils.isEmpty(approval.getValues()))
+            if (!approval.isNeerInput() && StringUtils.isEmpty(approval.getValues())) {
                 continue;//如果不是要输入的对象,同时显示值为空,需要隐藏去
+            }
             if (mergeAble) {
                 String valueTagKey = getJson2Text(config, "FD_LOGICTYPE", "DG_LOGICTYPE");//获取第二个值的key
                 if (!StringUtils.isEmpty(valueTagKey)) {
@@ -840,6 +872,70 @@ public class ApprovaPresenter implements OnHttpResultListener {
         return approvals;
     }
 
+    private List<Approval> handlerHistorySetuptask(JSONObject object) {
+        JSONArray nodes = OACheckUtil.getJsonArray(object, "nodes");
+        List<Approval> nodeApprovals = new ArrayList<>();
+        if (!ListUtils.isEmpty(nodes)) {
+            List<Approval> setuptasks = new ArrayList<>();
+            JSONObject node = null;
+            List<Approval> itemSetuptask = null;
+            for (int i = nodes.size() - 1; i >= 0; i--) {
+                node = nodes.getJSONObject(i);
+                itemSetuptask = getSetuptask(node);
+                if (!ListUtils.isEmpty(itemSetuptask)) {
+                    setuptasks.addAll(itemSetuptask);
+                }
+                nodeApprovals.add(getNodeApproval(node));
+            }
+            if (!ListUtils.isEmpty(setuptasks)) {
+                setData2ListThread(DETAIL, setuptasks);
+            }
+        }
+        return nodeApprovals;
+    }
+
+    private List<Approval> getSetuptask(JSONObject node) {
+        String name = OACheckUtil.getJson2Text(node, "jn_dealManName");
+        Approval approval = new Approval(Approval.TAG);
+        approval.setCaption(name + "的审批记录");
+        List<Approval> itemSetuptasks = getSetuptaskByData(OACheckUtil.getJson2Text(node, "jn_operatedDescription"));
+        if (!ListUtils.isEmpty(itemSetuptasks)) {
+            itemSetuptasks.add(0, approval);
+        }
+        return itemSetuptasks;
+    }
+
+    private Approval getNodeApproval(JSONObject object) {
+        String nodeName = OACheckUtil.getJson2Text(object, "jn_name");//当前结点名称
+        String emCode = OACheckUtil.getJson2Text(object, "jn_dealManId");//节点处理人编号
+        String manName = OACheckUtil.getJson2Text(object, "jn_dealManName");//处理人名字
+        String dealTime = OACheckUtil.getJson2Text(object, "jn_dealTime");//审批时间
+        String result = OACheckUtil.getJson2Text(object, "jn_dealResult");//审批结果
+        String description = OACheckUtil.getJson2Text(object, "jn_nodeDescription");//审批意见
+        Approval approval = new Approval(Approval.NODES);
+        approval.setCaption(manName);
+        approval.setDfType(emCode);
+        if (!StringUtils.isEmpty(dealTime)) {
+            approval.setValues(TimeUtils.long2str(TimeUtils.f_str_2_long(dealTime), "MM-dd HH:mm"));
+        }
+        StringBuilder resultBuilder = new StringBuilder();
+        if (!StringUtils.isEmpty(result)) {
+            if (result.equals("同意")) {
+                resultBuilder.append("已审批");
+            } else if (result.equals("不同意")) {
+                resultBuilder.append("未通过");
+            } else {
+                resultBuilder.append(result);
+            }
+        }
+        if (!StringUtils.isEmpty(description)) {
+            resultBuilder.append("(" + description + ")");
+        }
+        approval.setIdKey(resultBuilder.toString());
+        approval.setValuesKey(nodeName);
+        return approval;
+    }
+
     /**
      * itemData.caption //处理人名称
      * itemData.type //处理人编号
@@ -852,14 +948,21 @@ public class ApprovaPresenter implements OnHttpResultListener {
      * 2.获取node,获取审批意见和时间
      * 3.获取processs,获取审批状态
      */
-    private void handlerNode(final JSONObject object) {
+    private void handlerNode(final JSONObject object, final Bundle bundle) {
         ThreadUtil.getInstance().addTask(new Runnable() {
             @Override
             public void run() {
                 JSONArray nodes = OACheckUtil.getJsonArray(object, "nodes");
                 JSONArray processs = OACheckUtil.getJsonArray(object, "processs");
                 JSONArray datas = OACheckUtil.getJsonArray(object, "data");
-                final List<Approval> approvals = getNodDatas(datas);
+                List<Approval> approvals = getNodDatas(datas);
+                List<Approval> historyNodes = null;
+                if (bundle != null && !StringUtils.isEmpty(bundle.getString("historyNode"))) {
+                    historyNodes = handlerHistorySetuptask(JSON.parseObject(bundle.getString("historyNode")));
+                }
+                if (ListUtils.isEmpty(approvals) && !ListUtils.isEmpty(historyNodes)) {
+                    approvals = historyNodes;
+                }
                 if (!ListUtils.isEmpty(processs)) {
                     mergeNode(processs, approvals, false);
                 }
@@ -867,10 +970,10 @@ public class ApprovaPresenter implements OnHttpResultListener {
                     mergeNode(nodes, approvals, true);
                 }
                 //判断当前
+                boolean hanNotApproval = false;
                 for (Approval a : approvals) {
-                    if (a.getIdKey().contains("待审批")) {
-                        a.setValues("");
-                        record.status = "待审批";
+                    if (!a.getIdKey().startsWith("已审批")) {
+                        hanNotApproval = true;
                     }
                     String[] emcode = a.getDfType().split(",");
                     if (!StringUtils.isEmpty(emcode[0])) {
@@ -878,28 +981,41 @@ public class ApprovaPresenter implements OnHttpResultListener {
                         a.setId(imId);
                     }
                 }
-                setData2ListThread(Approval.NODES, approvals);
                 int reId = -1;
-                if ("未通过".equals(record.status)) {
+                if ("未通过".equals(record.status)||"已结束".equals(record.status)) {
                     reId = R.drawable.unapproved;
-                } else if ("已审批".equals(record.status)) {
+                } else if (!hanNotApproval) {
                     reId = R.drawable.approved;
                 }
-                Approval approval = new Approval(Approval.TITLE);
-                if (!StringUtils.isEmpty(record.title))
-                    approval.setCaption(record.title);
-                if (!StringUtils.isEmpty(record.imid))
-                    approval.setIdKey(record.imid);
-                if (reId > 0)
-                    approval.setId(reId);
-                List<Approval> titleApproval = new ArrayList<>();
-                titleApproval.add(approval);
-                setData2ListThread(Approval.TITLE, titleApproval);
+                handerTitle(reId);
+                setData2ListThread(Approval.NODES, approvals);
                 loading = false;
             }
         });
     }
 
+    private void handerTitle(int reId) {
+        Approval approval = new Approval(Approval.TITLE);
+        if (!StringUtils.isEmpty(record.title))
+            approval.setCaption(record.title);
+        if (!StringUtils.isEmpty(record.imid))
+            approval.setIdKey(record.imid);
+        if (reId > 0)
+            approval.setId(reId);
+        final List<Approval> titleApproval = new ArrayList<>();
+        titleApproval.add(approval);
+        if (Looper.getMainLooper() == Looper.myLooper()) {
+            ThreadUtil.getInstance().addTask(new Runnable() {
+                @Override
+                public void run() {
+                    setData2ListThread(Approval.TITLE, titleApproval);
+                }
+            });
+        } else {
+            setData2ListThread(Approval.TITLE, titleApproval);
+        }
+    }
+
     private void handlerEnclosure(final JSONArray array) throws Exception {
         ThreadUtil.getInstance().addTask(new Runnable() {
             @Override
@@ -981,43 +1097,6 @@ public class ApprovaPresenter implements OnHttpResultListener {
         return approvals;
     }
 
-    private void handlerHistorySetuptask(final JSONObject object) {
-        ThreadUtil.getInstance().addTask(new Runnable() {
-            @Override
-            public void run() {
-                JSONArray nodes = OACheckUtil.getJsonArray(object, "nodes");
-                if (!ListUtils.isEmpty(nodes)) {
-                    List<Approval> setuptasks = new ArrayList<Approval>();
-                    List<Approval> itemSetuptasks;
-                    Approval approval = null;
-                    JSONObject node = null;
-                    String name = null;
-                    for (int i = 0; i < nodes.size(); i++) {
-                        node = nodes.getJSONObject(i);
-                        name = OACheckUtil.getJson2Text(node, "jn_dealManName");
-                        approval = new Approval(Approval.TAG);
-                        approval.setCaption(name + "的审批记录");
-                        itemSetuptasks = getSetuptaskByData(OACheckUtil.getJson2Text(node, "jn_operatedDescription"));
-                        if (!ListUtils.isEmpty(itemSetuptasks)) {
-                            itemSetuptasks.add(0, approval);
-                            setuptasks.addAll(itemSetuptasks);
-                        }
-                    }
-                    setData2ListThread(Approval.DETAIL, setuptasks);
-                }
-                OAHttpHelper.getInstance().post(new Runnable() {
-                    @Override
-                    public void run() {
-                        if (isApprovaling()) {
-                            loadCustomSetupOfTask();
-                        } else {
-                            loadJnodes();
-                        }
-                    }
-                });
-            }
-        });
-    }
 
     private List<Approval> getSetuptaskByData(String data) {
         if (!StringUtils.isEmpty(data)) {
@@ -1075,7 +1154,7 @@ public class ApprovaPresenter implements OnHttpResultListener {
                 OAHttpHelper.getInstance().post(new Runnable() {
                     @Override
                     public void run() {
-                        loadJnodes();
+                        loadAllHistoryNodes();
                     }
                 });
             }
@@ -1270,7 +1349,7 @@ public class ApprovaPresenter implements OnHttpResultListener {
         return formstore;
     }
 
-    private synchronized void setData2ListThread(int type, List<Approval> newApprovals) {
+    private synchronized void setData2ListThread(final int type, List<Approval> newApprovals) {
         final List<Approval> merges = new ArrayList<>();
         if (!ListUtils.isEmpty(approvals)) {
             if (type == Approval.TITLE) {
@@ -1301,6 +1380,9 @@ public class ApprovaPresenter implements OnHttpResultListener {
         OAHttpHelper.getInstance().post(new Runnable() {
             @Override
             public void run() {
+                if (type == Approval.TITLE) {
+                    iApproval.showOpinion();
+                }
                 iApproval.showModels(merges);
 
             }

+ 2 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/imp/IApproval.java

@@ -20,4 +20,6 @@ public interface IApproval extends HttpImp {
 
     void endProcess();
 
+    void showOpinion();
+
 }

+ 138 - 115
WeiChat/src/main/res/layout/activity_approval.xml

@@ -9,129 +9,152 @@
     android:focusableInTouchMode="true"
     tools:context="com.xzjmyk.pm.activity.ui.erp.activity.oa.ApprovalActivity">
 
-    <LinearLayout
-        android:id="@+id/operationLL"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_alignParentBottom="true"
-        android:background="@color/base_bg"
-        android:orientation="horizontal"
-        android:padding="10dp">
-
-        <TextView
-            android:id="@+id/takeOverTV"
-            style="@style/bottomTextStyle"
-            android:layout_weight="2"
-            android:text="@string/take_over"
-            android:visibility="gone"/>
-
-        <Button
-            android:id="@+id/agreeTV"
-            style="@style/bottomTextStyle"
-            android:layout_weight="2"
-            android:background="@color/base_bg"
-            android:text="@string/agree"
-            android:textColor="@drawable/bg_bule_yellow_text"/>
-
-        <View
-            android:layout_width="@dimen/line"
-            android:layout_height="20dp"
-            android:layout_gravity="center_vertical"
-            android:background="@color/item_line"/>
-
-        <Button
-            android:id="@+id/disagreeTV"
-            style="@style/bottomTextStyle"
-            android:layout_weight="3"
-            android:background="@color/base_bg"
-            android:text="@string/common_disagree"
-            android:textColor="@drawable/bg_bule_yellow_text"/>
-
-        <View
-            android:layout_width="@dimen/line"
-            android:layout_height="20dp"
-            android:layout_gravity="center_vertical"
-            android:background="@color/item_line"/>
-
-        <TextView
-            android:id="@+id/changedealmanTV"
-            style="@style/bottomTextStyle"
-            android:layout_weight="5"
-            android:text="@string/common_changedealman"
-            android:visibility="gone"/>
-
-        <View
-
-            android:layout_width="@dimen/line"
-            android:layout_height="20dp"
-            android:layout_gravity="center_vertical"
-            android:background="@color/item_line"/>
-
-        <Button
-            android:id="@+id/nextTV"
-            style="@style/bottomTextStyle"
-            android:layout_weight="3"
-            android:background="@color/base_bg"
-            android:text="@string/next_article"
-            android:textColor="@drawable/bg_bule_yellow_text"/>
-    </LinearLayout>
-
     <RelativeLayout
         android:id="@+id/opinionRL"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:layout_above="@id/operationLL"
-        android:layout_marginBottom="@dimen/paddingApp"
-        android:layout_marginTop="@dimen/paddingApp"
+        android:layout_alignParentBottom="true"
         android:background="@color/base_bg">
 
-        <ImageView
-            android:id="@+id/commonWordsIV"
-            android:layout_width="20dp"
-            android:layout_height="20dp"
-            android:layout_gravity="center_vertical"
-            android:src="@drawable/changyongyu"
-            android:visibility="visible"
-            android:layout_alignTop="@+id/voiceIV"
-            android:layout_alignParentRight="true"
-            android:layout_alignParentEnd="true" />
-
-        <ImageView
-            android:id="@+id/voiceIV"
-            android:layout_width="20dp"
-            android:layout_height="20dp"
-            android:layout_gravity="center_vertical"
-            android:layout_marginRight="10dp"
-            android:layout_marginTop="3dp"
-            android:layout_toLeftOf="@+id/commonWordsIV"
-            android:src="@drawable/btn_yuyin_nor"
-            android:visibility="visible"
-            />
-
-        <ImageView
-            android:id="@+id/inputTagIV"
-            android:layout_width="15dp"
-            android:layout_height="15dp"
-            android:layout_marginLeft="10dp"
-            android:layout_marginTop="5dp"
-            android:src="@drawable/shuru"/>
-
-        <com.andreabaccega.widget.FormEditText
-            android:id="@+id/opinionET"
-            style="@style/form_relative_right_text2"
-            android:layout_alignParentTop="true"
-            android:hint="请输入审批意见..."
-            android:minHeight="50dp"
-            android:paddingLeft="10dp"
-            android:paddingTop="5dp"
-            whatever:customRegexp="^[\\s\\S]{0,30}$"
-            whatever:testErrorString="输入错误或内容超长"
-            whatever:testType="regexp"
-            android:layout_toLeftOf="@+id/voiceIV"
-            android:layout_toRightOf="@+id/inputTagIV"
-            />
+        <include layout="@layout/approval_operation"/>
     </RelativeLayout>
 
+
+    <!--<LinearLayout-->
+    <!--android:id="@+id/operationLL"-->
+    <!--android:layout_width="match_parent"-->
+    <!--android:layout_height="wrap_content"-->
+    <!--android:layout_alignParentBottom="true"-->
+    <!--android:background="@color/base_bg"-->
+    <!--android:orientation="horizontal"-->
+    <!--android:padding="10dp">-->
+
+    <!--<TextView-->
+    <!--android:id="@+id/takeOverTV"-->
+    <!--style="@style/bottomTextStyle"-->
+    <!--android:layout_weight="2"-->
+    <!--android:text="@string/take_over"-->
+    <!--android:visibility="gone"/>-->
+
+    <!--<Button-->
+    <!--android:id="@+id/agreeTV"-->
+    <!--style="@style/bottomTextStyle"-->
+    <!--android:layout_weight="2"-->
+    <!--android:background="@color/base_bg"-->
+    <!--android:text="@string/agree"-->
+    <!--android:textColor="@drawable/bg_bule_yellow_text"/>-->
+
+    <!--<View-->
+    <!--android:layout_width="@dimen/line"-->
+    <!--android:layout_height="20dp"-->
+    <!--android:layout_gravity="center_vertical"-->
+    <!--android:background="@color/item_line"/>-->
+
+    <!--<Button-->
+    <!--android:id="@+id/disagreeTV"-->
+    <!--style="@style/bottomTextStyle"-->
+    <!--android:layout_weight="3"-->
+    <!--android:background="@color/base_bg"-->
+    <!--android:text="@string/common_disagree"-->
+    <!--android:textColor="@drawable/bg_bule_yellow_text"/>-->
+
+    <!--<View-->
+    <!--android:layout_width="@dimen/line"-->
+    <!--android:layout_height="20dp"-->
+    <!--android:layout_gravity="center_vertical"-->
+    <!--android:background="@color/item_line"/>-->
+
+    <!--<TextView-->
+    <!--android:id="@+id/changedealmanTV"-->
+    <!--style="@style/bottomTextStyle"-->
+    <!--android:layout_weight="5"-->
+    <!--android:text="@string/common_changedealman"-->
+    <!--android:visibility="gone"/>-->
+
+    <!--<View-->
+
+    <!--android:layout_width="@dimen/line"-->
+    <!--android:layout_height="20dp"-->
+    <!--android:layout_gravity="center_vertical"-->
+    <!--android:background="@color/item_line"/>-->
+
+    <!--<Button-->
+    <!--android:id="@+id/nextTV"-->
+    <!--style="@style/bottomTextStyle"-->
+    <!--android:layout_weight="3"-->
+    <!--android:background="@color/base_bg"-->
+    <!--android:text="@string/next_article"-->
+    <!--android:textColor="@drawable/bg_bule_yellow_text"/>-->
+    <!--</LinearLayout>-->
+
+    <!--<RelativeLayout-->
+    <!--android:id="@+id/opinionRL"-->
+    <!--android:layout_width="match_parent"-->
+    <!--android:layout_height="wrap_content"-->
+    <!--android:layout_above="@id/operationLL"-->
+    <!--android:background="@color/base_bg">-->
+
+    <!--<View-->
+    <!--android:id="@+id/line_top"-->
+    <!--android:layout_width="match_parent"-->
+    <!--android:layout_height="@dimen/paddingApp"-->
+    <!--android:background="@color/item_line"/>-->
+
+
+    <!--<ImageView-->
+    <!--android:id="@+id/commonWordsIV"-->
+    <!--android:layout_width="20dp"-->
+    <!--android:layout_height="20dp"-->
+    <!--android:layout_alignParentRight="true"-->
+    <!--android:layout_below="@id/line_top"-->
+    <!--android:layout_gravity="center_vertical"-->
+    <!--android:src="@drawable/changyongyu"-->
+    <!--android:visibility="visible"/>-->
+
+    <!--<ImageView-->
+    <!--android:id="@+id/voiceIV"-->
+    <!--android:layout_width="20dp"-->
+    <!--android:layout_height="20dp"-->
+    <!--android:layout_alignTop="@id/commonWordsIV"-->
+    <!--android:layout_gravity="center_vertical"-->
+    <!--android:layout_marginRight="10dp"-->
+    <!--android:layout_marginTop="3dp"-->
+    <!--android:layout_toLeftOf="@id/commonWordsIV"-->
+    <!--android:src="@drawable/btn_yuyin_nor"-->
+    <!--android:visibility="visible"-->
+    <!--/>-->
+
+    <!--<ImageView-->
+    <!--android:id="@+id/inputTagIV"-->
+    <!--android:layout_width="15dp"-->
+    <!--android:layout_height="15dp"-->
+    <!--android:layout_alignTop="@id/commonWordsIV"-->
+    <!--android:layout_marginLeft="10dp"-->
+    <!--android:layout_marginTop="5dp"-->
+    <!--android:src="@drawable/shuru"/>-->
+
+    <!--<com.andreabaccega.widget.FormEditText-->
+    <!--android:id="@+id/opinionET"-->
+    <!--style="@style/form_relative_right_text2"-->
+    <!--android:layout_alignTop="@id/commonWordsIV"-->
+    <!--android:layout_toLeftOf="@+id/voiceIV"-->
+    <!--android:layout_toRightOf="@+id/inputTagIV"-->
+    <!--android:hint="请输入审批意见..."-->
+    <!--android:minHeight="50dp"-->
+    <!--android:paddingLeft="10dp"-->
+    <!--android:paddingTop="5dp"-->
+    <!--whatever:customRegexp="^[\\s\\S]{0,30}$"-->
+    <!--whatever:testErrorString="输入错误或内容超长"-->
+    <!--whatever:testType="regexp"/>-->
+
+    <!--<View-->
+    <!--android:id="@+id/line_botton"-->
+    <!--android:layout_width="match_parent"-->
+    <!--android:layout_height="@dimen/paddingApp"-->
+    <!--android:layout_below="@id/opinionET"-->
+    <!--android:background="@color/item_line"/>-->
+    <!--</RelativeLayout>-->
+
     <RelativeLayout
         android:layout_width="match_parent"
         android:layout_height="match_parent"

+ 133 - 0
WeiChat/src/main/res/layout/approval_operation.xml

@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="utf-8"?>
+<merge xmlns:android="http://schemas.android.com/apk/res/android"
+       xmlns:whatever="http://schemas.android.com/apk/res-auto"
+       android:layout_width="match_parent"
+       android:layout_height="wrap_content"
+       android:background="@color/base_bg">
+
+
+    <View
+        android:id="@+id/line_top"
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/paddingApp"
+        android:background="@color/item_line"/>
+
+
+    <ImageView
+        android:id="@+id/commonWordsIV"
+        android:layout_width="20dp"
+        android:layout_height="20dp"
+        android:layout_alignParentRight="true"
+        android:layout_below="@id/line_top"
+        android:layout_gravity="center_vertical"
+        android:src="@drawable/changyongyu"
+        android:visibility="visible"/>
+
+    <ImageView
+        android:id="@+id/voiceIV"
+        android:layout_width="20dp"
+        android:layout_height="20dp"
+        android:layout_alignTop="@id/commonWordsIV"
+        android:layout_gravity="center_vertical"
+        android:layout_marginRight="10dp"
+        android:layout_marginTop="3dp"
+        android:layout_toLeftOf="@id/commonWordsIV"
+        android:src="@drawable/btn_yuyin_nor"/>
+
+    <ImageView
+        android:id="@+id/inputTagIV"
+        android:layout_width="15dp"
+        android:layout_height="15dp"
+        android:layout_alignTop="@id/commonWordsIV"
+        android:layout_marginLeft="10dp"
+        android:layout_marginTop="5dp"
+        android:src="@drawable/shuru"/>
+
+    <com.andreabaccega.widget.FormEditText
+        android:id="@+id/opinionET"
+        style="@style/form_relative_right_text2"
+        android:layout_alignTop="@id/commonWordsIV"
+        android:layout_toLeftOf="@+id/voiceIV"
+        android:layout_toRightOf="@+id/inputTagIV"
+        android:hint="请输入审批意见..."
+        android:minHeight="50dp"
+        android:paddingLeft="10dp"
+        android:paddingTop="5dp"
+        whatever:customRegexp="^[\\s\\S]{0,30}$"
+        whatever:testErrorString="输入错误或内容超长"
+        whatever:testType="regexp"/>
+
+    <View
+        android:id="@+id/line_botton"
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/paddingApp"
+        android:layout_below="@id/opinionET"
+        android:background="@color/item_line"/>
+
+    <LinearLayout
+        android:id="@+id/operationLL"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_below="@id/line_botton"
+        android:background="@color/base_bg"
+        android:orientation="horizontal"
+        android:padding="10dp">
+
+        <TextView
+            android:id="@+id/takeOverTV"
+            style="@style/bottomTextStyle"
+            android:layout_weight="2"
+            android:text="@string/take_over"
+            android:visibility="gone"/>
+
+        <Button
+            android:id="@+id/agreeTV"
+            style="@style/bottomTextStyle"
+            android:layout_weight="2"
+            android:background="@color/base_bg"
+            android:text="@string/agree"
+            android:textColor="@drawable/bg_bule_yellow_text"/>
+
+        <View
+            android:layout_width="@dimen/line"
+            android:layout_height="20dp"
+            android:layout_gravity="center_vertical"
+            android:background="@color/item_line"/>
+
+        <Button
+            android:id="@+id/disagreeTV"
+            style="@style/bottomTextStyle"
+            android:layout_weight="3"
+            android:background="@color/base_bg"
+            android:text="@string/common_disagree"
+            android:textColor="@drawable/bg_bule_yellow_text"/>
+
+        <View
+            android:layout_width="@dimen/line"
+            android:layout_height="20dp"
+            android:layout_gravity="center_vertical"
+            android:background="@color/item_line"/>
+
+        <TextView
+            android:id="@+id/changedealmanTV"
+            style="@style/bottomTextStyle"
+            android:layout_weight="5"
+            android:text="@string/common_changedealman"
+            android:visibility="gone"/>
+
+        <View
+
+            android:layout_width="@dimen/line"
+            android:layout_height="20dp"
+            android:layout_gravity="center_vertical"
+            android:background="@color/item_line"/>
+
+        <Button
+            android:id="@+id/nextTV"
+            style="@style/bottomTextStyle"
+            android:layout_weight="3"
+            android:background="@color/base_bg"
+            android:text="@string/next_article"
+            android:textColor="@drawable/bg_bule_yellow_text"/>
+    </LinearLayout>
+</merge>

+ 2 - 0
WeiChat/src/main/res/layout/item_approval_title.xml

@@ -3,6 +3,7 @@
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
+    android:background="@color/base_bg"
     android:orientation="vertical">
 
     <RelativeLayout
@@ -15,6 +16,7 @@
         <com.xzjmyk.pm.activity.ui.erp.view.CircleImageView
             android:id="@+id/handIv"
             android:layout_width="50dp"
+            android:background="@color/base_bg"
             android:layout_height="50dp"/>
 
         <ImageView

+ 2 - 2
WeiChat/src/main/res/values/colors.xml

@@ -37,9 +37,9 @@
     <color name="pop_bg">#aeaeae</color>
     <color name="item_color2">@color/white</color>
     <color name="item_text">#cca0a0a0</color>
-    <color name="item_line">#BFD3D3D3</color>
+    <color name="item_line">#FFD3D3D3</color>
     <color name="antionbarcolor">#646464</color>
-    <color name="base_bg">#EBE9E9</color>
+    <color name="base_bg">#FFEBE9E9</color>
     <color name="antionbaritemcolor">#a3b2cf</color>
     <color name="wirtehine">#a3b2cf</color>
     <color name="text_main">#3c3c3c</color>