Browse Source

提交类型 处理bug
提交内容 详情界面添加附件支持

Bitliker 7 years ago
parent
commit
cb86fb4340

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

@@ -578,6 +578,7 @@ public class Constants {
         String FIELD_CONFIG = "fieldConfig";//搜索配置
         String CONFIG = "config";//配置
         String DETAILS_CLASS = "mDetailsClass";//进入详情界面
+        String BILL_JUMPS = "mBillJumps";//详情界面中对于个别字段的处理
         String INPUT_CLASS = "mInputClass";//进入编辑界面
         String LIST_CONDITION = "mListCondition";//列表Condition
         String DB_FIND_CONDITION = "dbfindCondition";//录入界面,dbfind字段添加的前提Condition

+ 3 - 0
app_core/common/src/main/java/com/core/net/http/ViewUtil.java

@@ -993,6 +993,9 @@ public class ViewUtil {
                     LogUtil.prinlnLongMsg("result", "http 发送请求-----------------------------------------");
                     LogUtil.prinlnLongMsg("result", "url:" + url);
                     LogUtil.prinlnLongMsg("result", "parms:" + params.toString());
+                    if (headers!=null) {
+                        LogUtil.prinlnLongMsg("result", "headers:" + headers.toString());
+                    }
                     if (result != null) {
                         Log.i("result", "result:" + result.getStatusCode());
                         // Log.i("result", "statusCode:" +result.getResponseText());

+ 13 - 9
app_modular/apputils/src/main/java/com/modular/apputils/activity/BillInputActivity.java

@@ -142,6 +142,18 @@ public class BillInputActivity extends OABaseActivity implements IBill, BillAdap
         return super.onCreateOptionsMenu(menu);
     }
 
+
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        if (item.getItemId() == R.id.saveAndSubmit) {
+            mBillPresenter.saveAndSubmit(mBillAdapter.getBillGroupModels());
+        } else if (item.getItemId() == R.id.list) {
+            toDataFormList();
+        }
+        return super.onOptionsItemSelected(item);
+    }
+
     public void toDataFormList() {
         ArrayList<BillListConfig> billListConfigs = new ArrayList<>();
         BillListConfig mBillListConfig = new BillListConfig();
@@ -161,15 +173,7 @@ public class BillInputActivity extends OABaseActivity implements IBill, BillAdap
 
     }
 
-    @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-        if (item.getItemId() == R.id.saveAndSubmit) {
-            mBillPresenter.saveAndSubmit(mBillAdapter.getBillGroupModels());
-        } else if (item.getItemId() == R.id.list) {
-            toDataFormList();
-        }
-        return super.onOptionsItemSelected(item);
-    }
+
 
     private void initView() {
         mRecyclerView = findViewById(R.id.mRecyclerView);

+ 23 - 2
app_modular/apputils/src/main/java/com/modular/apputils/adapter/BillDetailsAdapter.java

@@ -3,6 +3,7 @@ package com.modular.apputils.adapter;
 import android.Manifest;
 import android.content.Context;
 import android.content.Intent;
+import android.graphics.Bitmap;
 import android.graphics.Paint;
 import android.support.v7.widget.RecyclerView;
 import android.text.TextUtils;
@@ -19,6 +20,7 @@ import com.common.LogUtil;
 import com.common.data.ListUtils;
 import com.common.system.SystemUtil;
 import com.core.app.AppConstant;
+import com.core.app.Constants;
 import com.core.base.BaseActivity;
 import com.core.utils.CommonUtil;
 import com.core.utils.ToastUtil;
@@ -27,12 +29,15 @@ import com.core.widget.view.MyGridView;
 import com.me.imageloader.ImageLoaderUtil;
 import com.modular.apputils.R;
 import com.modular.apputils.model.BillGroupModel;
+import com.modular.apputils.model.BillJump;
 import com.modular.apputils.network.FileDownloader;
 import com.modular.apputils.utils.OpenFilesUtils;
 
 import java.io.File;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 public class BillDetailsAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
     private Context ct;
@@ -167,7 +172,11 @@ public class BillDetailsAdapter extends RecyclerView.Adapter<RecyclerView.ViewHo
     private void bindViewHolder(ViewHolder mViewHolder, BillGroupModel.BillModel field, int position) {
         mViewHolder.captionTv.setText(field.getCaption());
         mViewHolder.valuesTv.setText(field.getValue());
-        if (field.getCaption().contains("手机") || field.getCaption().contains("电话")) {
+        BillJump mBillJump = field.getBillJump();
+        if (mBillJump != null) {
+            mViewHolder.valuesTv.setTag(R.id.tag_key, mBillJump);
+            mViewHolder.valuesTv.setOnClickListener(mOnClickListener);
+        } else if (field.getCaption().contains("手机") || field.getCaption().contains("电话")) {
 //            mViewHolder.valuesTv.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG);
             mViewHolder.valuesTv.setTag(R.id.tag_key, 1);
             mViewHolder.valuesTv.setTag(field.getValue());
@@ -175,8 +184,8 @@ public class BillDetailsAdapter extends RecyclerView.Adapter<RecyclerView.ViewHo
         } else {
 //            mViewHolder.valuesTv.getPaint().setFlags(Paint.DEV_KERN_TEXT_FLAG);
             mViewHolder.valuesTv.setOnClickListener(null);
-
         }
+
         if (field.getGroupIndex() != 0 && position >= 1 && field.getGroupIndex() > mShowBillModels.get(position - 1).getGroupIndex()) {
             mViewHolder.titleTv.setVisibility(View.VISIBLE);
             String mGroupName = null;
@@ -203,6 +212,18 @@ public class BillDetailsAdapter extends RecyclerView.Adapter<RecyclerView.ViewHo
                         }
                         break;
                 }
+            } else if (view.getTag(R.id.tag_key) != null && view.getTag(R.id.tag_key) instanceof BillJump) {
+                BillJump mBillJump = (BillJump) view.getTag(R.id.tag_key);
+                Intent intent = new Intent(ct, mBillJump.getJumpClass())
+                        .putExtra(Constants.Intents.ID, mBillJump.getId())
+                        .putExtra(Constants.Intents.TITLE, mBillJump.getTitle());
+                HashMap<String, String> mParam = mBillJump.getParam();
+                if (mParam != null) {
+                    for (Map.Entry<String, String> mEntry : mParam.entrySet()) {
+                        intent.putExtra(mEntry.getKey(), mEntry.getValue());
+                    }
+                }
+                ct.startActivity(intent);
             } else if (R.id.content == view.getId() &&
                     view.getTag(R.id.tag_key) != null && view.getTag(R.id.tag_key) instanceof String
                     && view.getTag(R.id.tag_key2) != null && view.getTag(R.id.tag_key2) instanceof String) {

+ 9 - 1
app_modular/apputils/src/main/java/com/modular/apputils/model/BillGroupModel.java

@@ -181,7 +181,7 @@ public class BillGroupModel {
         private String findFunctionName;//默认值
         private String allowBlank;//是否允许为空(注:当作为标题的时候T:表示可以删除 F:表示不可删除)
         private List<LocalData> localDatas;//获取到的本地选择数据
-
+        private BillJump mBillJump;//判断是否需要要跳转字段
         public BillModel() {
         }
 
@@ -201,8 +201,16 @@ public class BillGroupModel {
             this.defValue = e.defValue;//
             this.allowBlank = e.allowBlank;
             this.findFunctionName = e.findFunctionName;
+            this.mBillJump = e.mBillJump;
+        }
+
+        public BillJump getBillJump() {
+            return mBillJump;
         }
 
+        public void setBillJump(BillJump mBillJump) {
+            this.mBillJump = mBillJump;
+        }
 
         public int getGroupIndex() {
             return groupIndex;

+ 101 - 0
app_modular/apputils/src/main/java/com/modular/apputils/model/BillJump.java

@@ -0,0 +1,101 @@
+package com.modular.apputils.model;
+
+import android.os.Parcel;
+import android.os.Parcelable;
+
+import java.util.HashMap;
+
+//跳转对象
+public class BillJump implements Parcelable {
+    private int id;
+    private Class mJumpClass;//跳转的界面对象
+    private String mTitle;//跳转的标题
+    private String mField;//点击的字段
+    private String mCaption;//点击的字段标题
+    private HashMap<String,String> mParam;
+
+
+    protected BillJump(Parcel in) {
+        id = in.readInt();
+        mTitle = in.readString();
+        mField = in.readString();
+        mCaption = in.readString();
+        mParam = (HashMap<String, String>) in.readSerializable();
+        mJumpClass = (Class) in.readSerializable();
+    }
+
+    public static final Creator<BillJump> CREATOR = new Creator<BillJump>() {
+        @Override
+        public BillJump createFromParcel(Parcel in) {
+            return new BillJump(in);
+        }
+
+        @Override
+        public BillJump[] newArray(int size) {
+            return new BillJump[size];
+        }
+    };
+
+    @Override
+    public int describeContents() {
+        return 0;
+    }
+
+    @Override
+    public void writeToParcel(Parcel parcel, int i) {
+        parcel.writeInt(id);
+        parcel.writeString(mTitle);
+        parcel.writeString(mField);
+        parcel.writeString(mCaption);
+        parcel.writeSerializable(mParam);
+        parcel.writeSerializable(mJumpClass);
+    }
+
+    public int getId() {
+        return id;
+    }
+
+    public void setId(int id) {
+        this.id = id;
+    }
+
+    public Class getJumpClass() {
+        return mJumpClass;
+    }
+
+    public void setJumpClass(Class mJumpClass) {
+        this.mJumpClass = mJumpClass;
+    }
+
+    public String getTitle() {
+        return mTitle;
+    }
+
+    public void setTitle(String mTitle) {
+        this.mTitle = mTitle;
+    }
+
+    public String getField() {
+        return mField==null?"":mField;
+    }
+
+    public void setField(String mField) {
+        this.mField = mField;
+    }
+
+    public String getCaption() {
+        return mCaption==null?"":mCaption;
+    }
+
+    public void setCaption(String mCaption) {
+        this.mCaption = mCaption;
+    }
+
+    public HashMap<String, String> getParam() {
+        return mParam;
+    }
+
+    public void setParam(HashMap<String, String> mParam) {
+        this.mParam = mParam;
+    }
+}

+ 14 - 3
app_modular/apputils/src/main/java/com/modular/apputils/presenter/BillDetailsPresenter.java

@@ -21,6 +21,7 @@ import com.core.utils.CommonUtil;
 import com.modular.apputils.activity.BillInputActivity;
 import com.modular.apputils.listener.OnSmartHttpListener;
 import com.modular.apputils.model.BillGroupModel;
+import com.modular.apputils.model.BillJump;
 import com.modular.apputils.network.Parameter;
 import com.modular.apputils.network.Tags;
 import com.modular.apputils.presenter.imp.IBillDetails;
@@ -40,6 +41,7 @@ public class BillDetailsPresenter extends BaseNetPresenter {
     protected String mCaller;//当前单据的Caller
     protected int mId;//当前单据拥有的id,新增默认为0
     protected Class mInputClass;
+    protected List<BillJump> mBillJumps;
 
 
     public BillDetailsPresenter(Context ct, IBillDetails mIBillDetails) {
@@ -61,6 +63,7 @@ public class BillDetailsPresenter extends BaseNetPresenter {
             if (mInputSerializable != null && mInputSerializable instanceof Class) {
                 mInputClass = (Class) mInputSerializable;
             }
+            mBillJumps = intent.getParcelableArrayListExtra(Constants.Intents.BILL_JUMPS);
             if (mTitle != null) {
                 mIBillDetails.setTitle(mTitle);
             }
@@ -146,10 +149,10 @@ public class BillDetailsPresenter extends BaseNetPresenter {
             for (int i = 0; i < array.size(); i++) {
                 JSONObject o = array.getJSONObject(i);
                 if (o == null) continue;
-                BillGroupModel.LocalData mLocalData = new BillGroupModel.LocalData ();
+                BillGroupModel.LocalData mLocalData = new BillGroupModel.LocalData();
                 int id = JSONUtil.getInt(o, "fp_id");
-                mLocalData.value=JSONUtil.getText(o, "fp_name");
-                mLocalData.display=getImageUrl(id);
+                mLocalData.value = JSONUtil.getText(o, "fp_name");
+                mLocalData.display = getImageUrl(id);
                 mLocalDatas.add(mLocalData);
             }
         }
@@ -230,6 +233,14 @@ public class BillDetailsPresenter extends BaseNetPresenter {
             mBillModel.setField(field);
             mBillModel.setAllowBlank(allowBlank);
             mBillModel.setValue(JSONUtil.getText(object, field));
+            if (!ListUtils.isEmpty(mBillJumps)) {
+                for (BillJump mBillJump : mBillJumps) {
+                    if (mBillJump.getCaption().equals(caption) || mBillJump.getField().equals(field)) {
+                        mBillModel.setBillJump(mBillJump);
+                        break;
+                    }
+                }
+            }
             if (!ListUtils.isEmpty(combostore)) {
                 List<BillGroupModel.LocalData> localDatas = new ArrayList<>();
                 for (int j = 0; j < combostore.size(); j++) {

+ 0 - 2
app_modular/apputils/src/main/res/layout/activity_bill_list.xml

@@ -20,10 +20,8 @@
         android:id="@+id/mViewPager"
         android:layout_width="match_parent"
         android:layout_height="0dp"
-        android:layout_marginTop="@dimen/padding"
         android:layout_weight="1"
         android:background="@color/white"
-        android:paddingBottom="40dp"
         app:layout_constraintTop_toBottomOf="@id/mTabLayout" />
 
 

+ 25 - 4
app_modular/appworks/src/main/java/com/uas/appworks/crm3_0/activity/CustomerContactActivity.java

@@ -2,6 +2,7 @@ package com.uas.appworks.crm3_0.activity;
 
 
 import android.content.Intent;
+import android.view.Menu;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
@@ -13,6 +14,7 @@ import com.modular.apputils.activity.BillInputActivity;
 import com.modular.apputils.adapter.BillAdapter;
 import com.modular.apputils.model.BillGroupModel;
 import com.modular.apputils.presenter.BillPresenter;
+import com.uas.appworks.R;
 import com.uas.appworks.adapter.CustomerContactAdapter;
 import com.uas.appworks.presenter.CustomerContactBillPresenter;
 import com.uas.appworks.presenter.imp.IContact;
@@ -25,6 +27,7 @@ import java.util.List;
  * 客户联系人详情|录入界面
  */
 public class CustomerContactActivity extends BillInputActivity {
+    private boolean isMe;
 
     @Override
     public BillPresenter newBillPresenter() {
@@ -36,7 +39,7 @@ public class CustomerContactActivity extends BillInputActivity {
 
             @Override
             public void deleteDetailOk(int deleteIndex) {
-                ((CustomerContactAdapter)mBillAdapter).superDeleteGroup(deleteIndex);
+                ((CustomerContactAdapter) mBillAdapter).superDeleteGroup(deleteIndex);
             }
         });
     }
@@ -45,18 +48,36 @@ public class CustomerContactActivity extends BillInputActivity {
     public BillAdapter newBillAdapter(List<BillGroupModel> groupModels) {
         return new CustomerContactAdapter(ct, groupModels, this, new CustomerContactAdapter.CustomerContactAdapterListener() {
             @Override
-            public void deleteGroup(int groupIndex,int ctId) {
-                getPresenter().deleteDetail(groupIndex,ctId);
+            public void deleteGroup(int groupIndex, int ctId) {
+                getPresenter().deleteDetail(groupIndex, ctId);
             }
         });
     }
 
     @Override
     public void commitSuccess(int keyValue, String code) {
-        ToastUtil.showToast(ct,"保存成功!!");
+        ToastUtil.showToast(ct, "保存成功!!");
         finish();
     }
 
+    @Override
+    public void init() {
+        super.init();
+        Intent intent = getIntent();
+        if (intent != null) {
+            isMe = intent.getBooleanExtra(Constants.Intents.MY_DOIT, false);
+        }
+    }
+
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        if (isMe) {
+            return super.onCreateOptionsMenu(menu);
+        } else {
+            return false;
+        }
+    }
+
 
     @Override
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {

+ 1 - 2
app_modular/appworks/src/main/res/layout/fragment_customer_3_0.xml

@@ -18,9 +18,8 @@
         android:id="@+id/mViewPager"
         android:layout_width="match_parent"
         android:layout_height="0dp"
-        android:layout_marginTop="@dimen/padding"
         android:background="@color/white"
-        android:paddingBottom="40dp"
+        android:paddingBottom="42dp"
         app:layout_constraintTop_toBottomOf="@id/mTabLayout" />