Kaynağa Gözat

common editor action 弹出 online enum 后,不能再次被设置(resolve: #14626)
Common editor multi action call and return cannot be matched -- common editor multi action 调用和返回无法做对应(resolve: #14627)
online enum add mapping filling function -- online enum 增加映射填充功能 (resolve: #14624)

Ray Zhang 4 yıl önce
ebeveyn
işleme
5823228f94

+ 21 - 7
ApexDrivers/CommonEditorLib/src/main/java/com/usai/commoneditorlib/CommonEditorActivity.java

@@ -531,10 +531,19 @@ public class CommonEditorActivity extends AppCompatActivity implements View.OnLa
             }
             try {
                 JSONObject cadedate = new JSONObject(cadedate_str);
-                int group = data.getIntExtra(EnumSlectActivity.GROUP_POSITION,0);
-                int child = data.getIntExtra(EnumSlectActivity.CHILD_POSITION,0);
+                int group = data.getIntExtra(EnumSlectOnlineActivity.GROUP_POSITION,0);
+                int child = data.getIntExtra(EnumSlectOnlineActivity.CHILD_POSITION,0);
+                int subid = data.getIntExtra(EnumSlectOnlineActivity.SUB_ID,-1);
+                JSONObject value =cadedate.optJSONObject("val_0");
+
+                if(subid>=0)
+                {
+                    value.put("is_subaction",true);
+                    value.put("subaction_tag",subid);
 
-                handle_action_return(cadedate,group,child,ACTION_FILL_SECTION);
+                }
+                // online enum 只返回选中项
+                handle_action_return(cadedate.optJSONObject("val_0"),group,child,ACTION_FILL_SECTION);
 
             } catch (Exception e) {
                 e.printStackTrace();
@@ -654,7 +663,7 @@ public class CommonEditorActivity extends AppCompatActivity implements View.OnLa
 
     }
 
-    public void handle_action_return(JSONObject value,int group,int child,int action_code) {
+    public void handle_action_return(JSONObject value,int group,int child,int action_code ) {
         if (value == null || value.length() == 0) {
             return;
         }
@@ -751,11 +760,14 @@ public class CommonEditorActivity extends AppCompatActivity implements View.OnLa
                     if (subid == null || subid.isEmpty()) {
 
                         JSONObject jsonmap = sub_action.optJSONObject("key_map");
+
                         section_json = content_data_download.optJSONObject("section_" + group);
                         int icount = section_json .optInt("count");
                         for (int ic = 0; ic < icount; ic++) {
                             JSONObject modify_item = section_json.optJSONObject("item_" + ic);
                             String valuefrom = jsonmap.optString(modify_item.optString("name"));
+                            if(TextUtils.isEmpty(valuefrom))
+                                continue;
                             String valuestr = value.optString(valuefrom);
                             if (valuestr != null) {
                                 try {
@@ -926,6 +938,8 @@ public class CommonEditorActivity extends AppCompatActivity implements View.OnLa
                         for (int ic = 0; ic < icount; ic++) {
                             JSONObject modify_item = section_json.optJSONObject("item_" + ic);
                             String valuefrom = jsonmap.optString(modify_item.optString("name"));
+                            if(TextUtils.isEmpty(valuefrom))
+                                continue;
                             String valuestr = value.optString(valuefrom);
 
                             if (valuestr != null) {
@@ -2341,7 +2355,7 @@ public class CommonEditorActivity extends AppCompatActivity implements View.OnLa
 
                         Bundle params=RAUtil.Json2Bundle(paramsjson);
 
-                        intent = new EnumSlectOnlineActivity.Builder().build(mCtx,title,max_select,groupPosition,childPosition,singleSelect,true,ONLINE_ENUM_URL,params);
+                        intent = new EnumSlectOnlineActivity.Builder().build(mCtx,title,max_select,groupPosition,childPosition,singleSelect,true,ONLINE_ENUM_URL,params,-1);
                     }
                     else
                     {
@@ -2532,7 +2546,7 @@ public class CommonEditorActivity extends AppCompatActivity implements View.OnLa
     {
         throw new AssertionError("CommonEditor.handle_editor_cell_select not impl");
     }
-    protected void multiAction( int groupIndex,int itemIndex,JSONObject item_json)
+    protected void multiAction( int groupIndex,int itemIndex,JSONObject item_json, int subid)
     {
 
         throw new AssertionError("CommonEditor.multiAction not impl");
@@ -3986,7 +4000,7 @@ protected void commonAction(String value, int groupIndex,int itemIndex,JSONObjec
             JSONObject sub_action = item_json.optJSONObject("item_" + i);
 //            String type = sub_action.optString("type");
 
-            multiAction(group,child,sub_action);
+            multiAction(group,child,sub_action,i);
 
 //
 //            if (type != null && type.equals("pull")) {

+ 7 - 2
ApexDrivers/CommonEditorLib/src/main/java/com/usai/commoneditorlib/EnumSlectOnlineActivity.java

@@ -49,6 +49,7 @@ public class EnumSlectOnlineActivity extends AppCompatActivity
     static String MAX_SELECT = "max_select";
     static String GROUP_POSITION = "group";
     static String CHILD_POSITION = "child";
+    static String SUB_ID = "subid";
     //    static String CADEDATE = "cadedate";
     static String SINGLE_SELECT = "single_select";
     static String TITLE = "title";
@@ -299,7 +300,7 @@ public class EnumSlectOnlineActivity extends AppCompatActivity
 
     public static class Builder
     {
-        public Intent build(Context context, String title, int max_select, int group, int child, boolean single_select, boolean auto_close, String url, Bundle params)
+        public Intent build(Context context, String title, int max_select, int group, int child, boolean single_select, boolean auto_close, String url, Bundle params,int subid)
         {
             if (context == null)
             {
@@ -310,6 +311,7 @@ public class EnumSlectOnlineActivity extends AppCompatActivity
 
             intent.putExtra(MAX_SELECT, max_select);
             intent.putExtra(GROUP_POSITION, group);
+            intent.putExtra(SUB_ID , subid);
             intent.putExtra(CHILD_POSITION, child);
             intent.putExtra(PARAMETERS, params);
             intent.putExtra(URL, url);
@@ -423,6 +425,7 @@ public class EnumSlectOnlineActivity extends AppCompatActivity
 
     private int maxSelect;
     private int mGroup;
+    private int subid=-1;
     private int mChild;
     private boolean mSingleSelect;
     private String mTitle;
@@ -496,7 +499,7 @@ public class EnumSlectOnlineActivity extends AppCompatActivity
             intent.putExtra(CADEDATE,online_cadedate.toString());
             intent.putExtra(GROUP_POSITION, mGroup);
             intent.putExtra(CHILD_POSITION, mChild);
-
+            intent.putExtra(SUB_ID,subid);
             setResult(RESULT_OK, intent);
         }
 
@@ -518,6 +521,7 @@ public class EnumSlectOnlineActivity extends AppCompatActivity
 //        }
         mSingleSelect = intent.getBooleanExtra(SINGLE_SELECT, true);
         mGroup = intent.getIntExtra(GROUP_POSITION, 0);
+        subid = intent.getIntExtra(SUB_ID, -1);
         mChild = intent.getIntExtra(CHILD_POSITION, 0);
         mTitle = intent.getStringExtra(TITLE);
         maxSelect = intent.getIntExtra(MAX_SELECT, 0);
@@ -552,6 +556,7 @@ public class EnumSlectOnlineActivity extends AppCompatActivity
 //                    if (mKeywords == null || mKeywords.isEmpty()) {
 
                     JSONObject val_json = mCadedate.optJSONObject("val_"+position);
+                    val_json.put("check",1);
                     online_cadedate = new JSONObject();
                     online_cadedate.put("count",1);
                     online_cadedate.put("val_0",val_json);

+ 4 - 4
ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/tfeditor/TFEditorActivity.java

@@ -311,7 +311,7 @@ public class TFEditorActivity extends CommonEditorActivity
 
 
     @Override
-    protected void multiAction( int groupIndex, int itemIndex, JSONObject item_json)
+    protected void multiAction( int groupIndex, int itemIndex, JSONObject item_json,int subid)
 
     {
 
@@ -321,7 +321,7 @@ public class TFEditorActivity extends CommonEditorActivity
 
 
 
-        String subid = item_json.optString("subid");
+//        String subid = item_json.optString("subid");
         String refresh_trigger = item_json.optString("name");
 //        JSONObject sub_action = item_json.optJSONObject("item_" + i);
 //        String type = item_json.optString("type");
@@ -382,7 +382,7 @@ public class TFEditorActivity extends CommonEditorActivity
             boolean singleSelect = single_select.toLowerCase().equals("true");
 
 
-            Intent intent = new EnumSlectOnlineActivity.Builder().build(mCtx,title,max_select,groupIndex,itemIndex,singleSelect,true,ONLINE_ENUM_URL,params);
+            Intent intent = new EnumSlectOnlineActivity.Builder().build(mCtx,title,max_select,groupIndex,itemIndex,singleSelect,true,ONLINE_ENUM_URL,params,subid);
 
             int request_code = 15;
 
@@ -467,7 +467,7 @@ public class TFEditorActivity extends CommonEditorActivity
             boolean singleSelect = single_select.toLowerCase().equals("true");
 
 
-            Intent intent = new EnumSlectOnlineActivity.Builder().build(mCtx,title,max_select,groupIndex,itemIndex,singleSelect,true,ONLINE_ENUM_URL,params);
+            Intent intent = new EnumSlectOnlineActivity.Builder().build(mCtx,title,max_select,groupIndex,itemIndex,singleSelect,true,ONLINE_ENUM_URL,params,-1);
 
             int request_code = 15;