Browse Source

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

# Conflicts:
#	WeiChat/version.properties
#	app_modular/appworks/src/main/java/com/uas/appworks/CRM/erp/activity/DeviceDataFormAddActivity.java
Arison 8 years ago
parent
commit
e79471538a
25 changed files with 354 additions and 121 deletions
  1. 1 1
      WeiChat/build.gradle
  2. 10 2
      WeiChat/src/main/AndroidManifest.xml
  3. 24 2
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/WebViewCommActivity.java
  4. 2 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/adapter/WorkMenuParentAdapter.java
  5. 1 1
      WeiChat/src/main/res/values-zh-rCN/strings.xml
  6. 1 1
      WeiChat/src/main/res/values-zh-rTW/strings.xml
  7. 1 1
      WeiChat/src/main/res/values/strings.xml
  8. 2 2
      app_core/common/src/main/assets/work_menu.json
  9. 2 2
      app_core/common/src/main/assets/work_menu_b2b.json
  10. 5 7
      app_core/common/src/main/java/com/core/net/http/HttpClient.java
  11. 0 5
      app_core/common/src/main/java/com/core/net/http/HttpUtil.java
  12. 0 10
      app_core/common/src/main/java/com/core/net/http/ViewUtil.java
  13. 3 0
      app_core/common/src/main/java/com/core/utils/CommonUtil.java
  14. 1 1
      app_core/common/src/main/res/values-zh-rTW/strings.xml
  15. 1 1
      app_core/common/src/main/res/values/strings.xml
  16. 1 1
      app_modular/appbooking/src/main/java/com/modular/booking/activity/services/BServiceAddActivity.java
  17. 3 4
      app_modular/appbooking/src/main/java/com/modular/booking/adapter/ItemBserviceHeaderAdapter.java
  18. 5 5
      app_modular/appbooking/src/main/res/layout/item_bservice_header.xml
  19. 20 7
      app_modular/appcontact/src/main/java/com/uas/appcontact/ui/activity/ContactsActivity.java
  20. 1 1
      app_modular/appme/src/main/res/values/strings.xml
  21. 18 11
      app_modular/apputils/src/main/AndroidManifest.xml
  22. 131 0
      app_modular/apputils/src/main/java/com/modular/apputils/activity/SimpleWebActivity.java
  23. 13 0
      app_modular/apputils/src/main/res/layout/activity_simple_web.xml
  24. 70 52
      app_modular/appworks/src/main/java/com/uas/appworks/CRM/erp/activity/BusinessActivity.java
  25. 38 3
      app_modular/appworks/src/main/java/com/uas/appworks/OA/erp/activity/form/DataFormDetailActivity.java

+ 1 - 1
WeiChat/build.gradle

@@ -4,7 +4,7 @@ apply plugin: 'me.tatarka.retrolambda'
 //定义时间
 def releaseTime() {
    // return new Date().format("yyyyMMdd.HHmm.ss")
-    return new Date().format("yyyyMMdd.HHmm")
+    return new Date().format("yyyyMMdd")
 }
 //设置发布的显示的版本号
 def getVersionName() {

+ 10 - 2
WeiChat/src/main/AndroidManifest.xml

@@ -130,11 +130,19 @@
         <activity android:name=".ui.SplashActivity">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
-
                 <category android:name="android.intent.category.LAUNCHER" />
-
                 <action android:name="cat.ereza.customactivityoncrash.RESTART" />
             </intent-filter>
+
+            <intent-filter>
+                <action android:name="android.intent.action.VIEW"></action>
+                <category android:name="android.intent.category.DEFAULT"></category>
+                <category android:name="android.intent.category.BROWSABLE"></category>
+                
+                <data android:scheme="app"
+                    android:host="usoftchina.com">
+                </data>
+            </intent-filter>
         </activity>
         <!-- 异常跳转页面 -->
         <activity

+ 24 - 2
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/WebViewCommActivity.java

@@ -32,6 +32,7 @@ import android.widget.TextView;
 import android.widget.Toast;
 
 import com.alibaba.fastjson.JSON;
+import com.common.LogUtil;
 import com.common.data.StringUtil;
 import com.common.preferences.PreferenceUtils;
 import com.common.system.SystemUtil;
@@ -213,7 +214,7 @@ public class WebViewCommActivity extends BaseActivity implements View.OnClickLis
         if (isCookie) {
             synCookies(this, url);
         } else {
-            clearCookie();
+         //   clearCookie();
         }
         Map<String, String> headers = new HashMap<>();
         headers.put("client-name", "uasClient");
@@ -266,9 +267,17 @@ public class WebViewCommActivity extends BaseActivity implements View.OnClickLis
             public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
                 handler.proceed();
             }
+
+            public void onPageFinished(WebView view, String url) {
+                CookieManager cookieManager = CookieManager.getInstance();
+                String CookieStr = cookieManager.getCookie(url);
+                LogUtil.d(TAG,"Cookies = " + CookieStr);
+                super.onPageFinished(view, url);
+            }
         });
     }
 
+    private static final String TAG = "WebViewCommActivity";
     @Override
     public void onClick(View v) {
         switch (v.getId()) {
@@ -583,11 +592,24 @@ public class WebViewCommActivity extends BaseActivity implements View.OnClickLis
         return false;
     }
 
+    /**
+     * 同步一下cookie 
+     */
+    public static void synComCookies(Context context, String url) {
+        CookieSyncManager.createInstance(context);
+        CookieManager cookieManager = CookieManager.getInstance();
+        cookieManager.setAcceptCookie(true);
+        cookieManager.removeSessionCookie();//移除  
+        cookieManager.setCookie(url, com.core.utils.CommonUtil.getB2BSession(MyApplication.getInstance()));//cookies是在HttpClient中获得的cookie  
+        CookieSyncManager.getInstance().sync();
+    }
+    
+    
+    
     public class JSWebView {
 
         @JavascriptInterface
         public void closeWebWindow() {
-//            Toast.makeText(MyApplication.getInstance(),"JSWebView",Toast.LENGTH_LONG).show();
             finish();
         }
     }

+ 2 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/adapter/WorkMenuParentAdapter.java

@@ -206,7 +206,8 @@ public class WorkMenuParentAdapter extends BaseAdapter {
                     intent.putExtra("type", 1);
                 }
                 break;
-            case "com.modular.main.WebViewCommActivity":
+            case  "com.modular.apputils.activity.SimpleWebActivity":
+          //  case "com.modular.main.WebViewCommActivity":
                 if ("ic_work_b2b_commerce".equals(menuIcon)) {
                     String phone = com.xzjmyk.pm.activity.util.oa.CommonUtil.getSharedPreferences(context, "user_phone");
                     String password = com.xzjmyk.pm.activity.util.oa.CommonUtil.getSharedPreferences(context, "user_password");

+ 1 - 1
WeiChat/src/main/res/values-zh-rCN/strings.xml

@@ -860,7 +860,7 @@
     <string name="work_oa">行政办公</string>
     <string name="work_business_manage">商务管理</string>
     <string name="work_business_mall">优软商城</string>
-    <string name="work_business_find">商品查询</string>
+    <string name="work_business_find">优软商城</string>
     <string name="work_business_me">我的商务</string>
     <string name="work_oa_sigin">自动考勤</string>
     <string name="work_oa_order">查看订单询价单</string>

+ 1 - 1
WeiChat/src/main/res/values-zh-rTW/strings.xml

@@ -832,7 +832,7 @@
     <string name="work_oa">行政辦公</string>
     <string name="work_business_manage">商務管理</string>
     <string name="work_business_mall">優軟商城</string>
-    <string name="work_business_find">商品查詢</string>
+    <string name="work_business_find">優軟商城</string>
     <string name="work_business_me">我的商務</string>
     <string name="work_oa_sigin">自動考勤</string>
     <string name="work_oa_order">查看訂單詢價單</string>

+ 1 - 1
WeiChat/src/main/res/values/strings.xml

@@ -1551,7 +1551,7 @@
     <string name="real_arrival_time">实际到达时间</string>
     <string name="recent_record_time">最近记录时间</string>
     <string name="select_client">选择客户</string>
-    <string name="work_business_find">商品查询</string>
+    <string name="work_business_find">优软商城</string>
     <string name="app_trytoget_outplan">获取外勤计划失败</string>
     <string name="set_language">切换语言</string>
     <string name="select_form_phoneablum">从手机相册选择</string>

+ 2 - 2
app_core/common/src/main/assets/work_menu.json

@@ -289,7 +289,7 @@
         "isLocalMenu": true,
         "menuName": "str_work_b2b_commerce",
         "menuIcon": "ic_work_b2b_commerce",
-        "menuActivity": "com.modular.main.WebViewCommActivity",
+        "menuActivity": "com.modular.apputils.activity.SimpleWebActivity",
         "menuUrl": "",
         "caller": "",
         "isHide": false
@@ -298,7 +298,7 @@
         "isLocalMenu": true,
         "menuName": "str_work_usoft_mall",
         "menuIcon": "ic_work_usoft_mall",
-        "menuActivity": "com.modular.main.WebViewCommActivity",
+        "menuActivity": "com.modular.apputils.activity.SimpleWebActivity",
         "menuUrl": "",
         "caller": "",
         "isHide": false

+ 2 - 2
app_core/common/src/main/assets/work_menu_b2b.json

@@ -127,7 +127,7 @@
         "isLocalMenu": true,
         "menuName": "str_work_b2b_commerce",
         "menuIcon": "ic_work_b2b_commerce",
-        "menuActivity": "com.modular.main.WebViewCommActivity",
+        "menuActivity": "com.modular.apputils.activity.SimpleWebActivity",
         "menuUrl": "",
         "caller": "",
         "isHide": false
@@ -136,7 +136,7 @@
         "isLocalMenu": true,
         "menuName": "str_work_usoft_mall",
         "menuIcon": "ic_work_usoft_mall",
-        "menuActivity": "com.modular.main.WebViewCommActivity",
+        "menuActivity": "com.modular.apputils.activity.SimpleWebActivity",
         "menuUrl": "",
         "caller": "",
         "isHide": false

+ 5 - 7
app_core/common/src/main/java/com/core/net/http/HttpClient.java

@@ -1,11 +1,9 @@
 package com.core.net.http;
 
-import android.util.Log;
-
+import com.alibaba.fastjson.JSON;
 import com.common.LogUtil;
 import com.common.data.StringUtil;
 import com.common.hmac.HmacUtils;
-import com.common.preferences.PreferenceUtils;
 import com.core.api.wxapi.ApiConfig;
 import com.core.api.wxapi.ApiUtils;
 import com.core.app.Constants;
@@ -122,7 +120,6 @@ public class HttpClient {
 
     public String sendPostRequest(String url, Map<String, String> params)
             throws IOException {
-        Log.i("HTTP", "post url=" + url);
         String result = null;
         HttpResponse response = null;
         DefaultHttpClient httpclient = MyHttpClient.getNewHttpClient();
@@ -162,6 +159,7 @@ public class HttpClient {
             String temp = EntityUtils.toString(response.getEntity());
             if ("b2b".equals(params.get("appId"))) {
                 Header[] headers = response.getHeaders("Set-Cookie");
+                LogUtil.d("AppLogin", "B2B 登录接口响应头:"+JSON.toJSONString(headers));
                 if (headers != null && headers.length > 0) {
                     for (Header header : headers) {
                         String value = header.getValue();
@@ -188,7 +186,7 @@ public class HttpClient {
             try {
                 if (url.contains(ApiConfig.getInstance(ApiUtils.getApiModel()).getmApiBase().login)) {
                     String b2bCookie = response.getHeaders("Set-Cookie")[0].getValue() + ";" + response.getHeaders("Set-Cookie")[1].getValue();
-                    LogUtil.d("HttpClient", "B2B Cookie:" + b2bCookie);
+                    LogUtil.d("AppLogin", "B2B Cookie:" + b2bCookie);
                     ApiConfig.getInstance(ApiUtils.getApiModel()).getmApiBase().setCookie(b2bCookie);
                 }
             } catch (Exception e) {
@@ -198,11 +196,11 @@ public class HttpClient {
             for (int i = 0; i < cookieStore.getCookies().size(); i++) {
                 if ("218.17.158.219".equals(cookieStore.getCookies().get(i)
                         .getDomain())) {
-                    PreferenceUtils.putLong(MyApplication.getInstance(), "WebViewCommActivity_time", System.currentTimeMillis());
+//                    PreferenceUtils.putLong(MyApplication.getInstance(), "WebViewCommActivity_time", System.currentTimeMillis());
                     MyApplication.cookieERP = cookieStore.getCookies().get(i);
                 } else {
                     MyApplication.cookieERP = cookieStore.getCookies().get(i);
-                    PreferenceUtils.putLong(MyApplication.getInstance(), "WebViewCommActivity_time", System.currentTimeMillis());
+//                    PreferenceUtils.putLong(MyApplication.getInstance(), "WebViewCommActivity_time", System.currentTimeMillis());
                 }
             }
 

+ 0 - 5
app_core/common/src/main/java/com/core/net/http/HttpUtil.java

@@ -54,11 +54,6 @@ import javax.net.ssl.SSLContext;
 import static com.loopj.android.http.RequestParams.APPLICATION_JSON;
 
 
-/**
- * @author :Administrator   2015年12月16日 上午11:09:31
- * @注释:网络请求HttpClient4.3--Android
- */
-@SuppressWarnings("deprecation")
 public class HttpUtil {
 
     public static Response sendGetRequest(

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

@@ -17,7 +17,6 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.common.LogUtil;
-import com.common.config.BaseConfig;
 import com.common.data.JSONUtil;
 import com.common.data.ListUtils;
 import com.common.data.StringUtil;
@@ -1047,19 +1046,10 @@ public class ViewUtil {
                                     String password) {
         mdProcessDialog.setContent(MyApplication.getInstance().getString(R.string.login_progress_erp));
         url = url + "mobile/login.action";
-//        if (BaseConfig.isDebug()){
-//            master=CommonUtil.getMaster();
-//            url="http://192.168.253.97:8080/ERP/mobile/login.action";
-//        }
- //       url="http://192.168.253.58:8080/ERP/mobile/login.action";
-//        url = "http://192.168.253.29:8080/ERP/mobile/login.action";
-//        url = "http://192.168.253.6/uas_dev/mobile/login.action";
-//        url = "https://admin-city.ubtob.com/mobile/login.action";
         Map<String, String> params = new HashMap<String, String>();
         params.put("username", username);
         params.put("password", password);
         params.put("master", master);
-//        params.put("master", "CITIES_CONTROL");
         LogUtil.i("login", "url=" + url);
         LogUtil.i("login", "params=" + JSONUtil.map2JSON(params));
         startNetThread(url, params, handler, Constants.SUCCESS_ERP, null, null, "post");

+ 3 - 0
app_core/common/src/main/java/com/core/utils/CommonUtil.java

@@ -35,6 +35,7 @@ import android.widget.Toast;
 
 import com.afollestad.materialdialogs.MaterialDialog;
 import com.andreabaccega.widget.FormEditText;
+import com.common.LogUtil;
 import com.common.config.BaseConfig;
 import com.common.data.ListUtils;
 import com.common.data.StringUtil;
@@ -135,6 +136,7 @@ public class CommonUtil {
         return getSharedPreferences(ct, Constants.B2B_UID_CACHE) == null ? "" : getSharedPreferences(ct, Constants.B2B_UID_CACHE);
     }
 
+    private static final String TAG = "CommonUtil";
     /**
      * B2B身份session
      *
@@ -143,6 +145,7 @@ public class CommonUtil {
      */
     public static String getB2BSession(Context ct) {
         if (ct == null) {
+            LogUtil.d(TAG,"ct ==null");
             return "";
         }
         return getSharedPreferences(ct, Constants.B2B_SESSION_CACHE) == null ? "" : getSharedPreferences(ct, Constants.B2B_SESSION_CACHE);

+ 1 - 1
app_core/common/src/main/res/values-zh-rTW/strings.xml

@@ -835,7 +835,7 @@
     <string name="work_oa">行政辦公</string>
     <string name="work_business_manage">商務管理</string>
     <string name="work_business_mall">優軟商城</string>
-    <string name="work_business_find">商品查詢</string>
+    <string name="work_business_find">優軟商城</string>
     <string name="work_business_me">我的商務</string>
     <string name="work_oa_sigin">自動考勤</string>
     <string name="work_oa_order">查看訂單詢價單</string>

+ 1 - 1
app_core/common/src/main/res/values/strings.xml

@@ -1553,7 +1553,7 @@
     <string name="real_arrival_time">实际到达时间</string>
     <string name="recent_record_time">最近记录时间</string>
     <string name="select_client">选择客户</string>
-    <string name="work_business_find">商品查询</string>
+    <string name="work_business_find">优软商城</string>
     <string name="app_trytoget_outplan">获取外勤计划失败</string>
     <string name="set_language">切换语言</string>
     <string name="select_form_phoneablum">从手机相册选择</string>

+ 1 - 1
app_modular/appbooking/src/main/java/com/modular/booking/activity/services/BServiceAddActivity.java

@@ -1642,7 +1642,7 @@ public class BServiceAddActivity extends OABaseActivity implements View.OnClickL
     public void searchSeatNumbers(String yearmonth,String companyid){
         //companyid,userid,yearmonth,token
         
-        showLoading();
+    
         yearmonth=DateFormatUtil.getStrDate4Date(DateFormatUtil.getDate4StrDate(yearmonth,"yyyy-MM-dd HH:ss"),"yyyyMMdd");
         String peopleNumber=tv_food_peoples.getText().toString();
         String aType="小桌";

+ 3 - 4
app_modular/appbooking/src/main/java/com/modular/booking/adapter/ItemBserviceHeaderAdapter.java

@@ -9,6 +9,7 @@ import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.BaseAdapter;
+import android.widget.ImageView;
 import android.widget.TextView;
 
 import com.modular.booking.R;
@@ -17,8 +18,6 @@ import com.modular.booking.model.SBMenuModel;
 import java.util.ArrayList;
 import java.util.List;
 
-import de.hdodenhof.circleimageview.CircleImageView;
-
 public class ItemBserviceHeaderAdapter extends BaseAdapter {
 
     private List<SBMenuModel> objects = new ArrayList<SBMenuModel>();
@@ -71,12 +70,12 @@ public class ItemBserviceHeaderAdapter extends BaseAdapter {
         public SBMenuModel menuModel;
         public TextView tvTitle;
         public TextView tvDesc;
-        public CircleImageView ivMenu;
+        public ImageView ivMenu;
 
         public ViewHolder(View view) {
             tvTitle = (TextView) view.findViewById(R.id.tv_title);
             tvDesc = (TextView) view.findViewById(R.id.tv_desc);
-            ivMenu = (CircleImageView) view.findViewById(R.id.iv_menu);
+            ivMenu = (ImageView) view.findViewById(R.id.iv_menu);
         }
     }
 }

+ 5 - 5
app_modular/appbooking/src/main/res/layout/item_bservice_header.xml

@@ -27,12 +27,12 @@
         android:layout_margin="2dp"
         android:text="*****" />
 
-    <de.hdodenhof.circleimageview.CircleImageView
+    <ImageView
         android:id="@+id/iv_menu"
-        android:layout_width="45dp"
-        android:layout_height="45dp"
+        android:layout_width="46dp"
+        android:layout_height="46dp"
+        android:scaleType="fitXY"
         android:layout_marginBottom="10dp"
-        
         android:src="@drawable/defaultpic">
-    </de.hdodenhof.circleimageview.CircleImageView>
+    </ImageView>
 </LinearLayout>

+ 20 - 7
app_modular/appcontact/src/main/java/com/uas/appcontact/ui/activity/ContactsActivity.java

@@ -90,6 +90,10 @@ import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 
+/**
+  * @desc:单选和多选通讯录人员界面
+  * @author:Arison on 2017/12/27
+  */
 public class ContactsActivity extends OABaseActivity implements ContactsAdapter.ResultItemsInface {
 
 	private PullToRefreshListView mlist;
@@ -214,11 +218,16 @@ public class ContactsActivity extends OABaseActivity implements ContactsAdapter.
 				} else if (type == 1) { //预约---获取对象界面
 					//预约对象
 					if (isSingleSelect) {
+						//单选
 						Intent intent = new Intent();
 						intent.putExtra("data", viewHolder.model);
 						setResult(0x20, intent);
 						finish();
 					} else {
+						//多选
+						LogUtil.d(TAG,"models size:"+adapter.getModels().size());
+						LogUtil.prinlnLongMsg(TAG,"models:"+JSON.toJSONString(adapter.getModels()));
+						
 						boolean isChecked = !viewHolder.checkBox.isChecked();
 						LogUtil.d("ContactsActivity", "isChecked:" + isChecked);
 						setSelectNumber(isChecked);
@@ -255,15 +264,19 @@ public class ContactsActivity extends OABaseActivity implements ContactsAdapter.
 			}
 		});
 
-
+		//确认按钮
 		findViewById(R.id.sure_tv).setOnClickListener(new View.OnClickListener() {
 			@Override
 			public void onClick(View view) {
-				ArrayList<ContactsModel> models = getSelectNumber();
-				Intent intent = new Intent();
-				intent.putParcelableArrayListExtra("data", models);
-				activity.setResult(0x01, intent);
-				activity.finish();
+				if (StringUtil.isEmpty(voiceSearchView.getSearch_edit().getText().toString())) {
+					ArrayList<ContactsModel> models = getSelectNumber();
+					Intent intent = new Intent();
+					intent.putParcelableArrayListExtra("data", models);
+					activity.setResult(0x01, intent);
+					activity.finish();
+				}else{
+					ToastMessage("请清除查询条件便可以点击确认操作!");
+				}
 			}
 		});
 
@@ -334,7 +347,7 @@ public class ContactsActivity extends OABaseActivity implements ContactsAdapter.
 	private synchronized void sreachKeyWork(final String keyWork) {
 		searchKey = keyWork;
 		LogUtil.i("allModels=" + allModels.size());
-		if (StringUtil.isEmail(keyWork)) {
+		if (StringUtil.isEmpty(keyWork)) {
 			mlist.setMode(PullToRefreshBase.Mode.PULL_FROM_START);
 			models.clear();
 			models.addAll(allModels);

+ 1 - 1
app_modular/appme/src/main/res/values/strings.xml

@@ -1549,7 +1549,7 @@
     <string name="real_arrival_time">实际到达时间</string>
     <string name="recent_record_time">最近记录时间</string>
     <string name="select_client">选择客户</string>
-    <string name="work_business_find">商品查询</string>
+    <string name="work_business_find">优软商城</string>
     <string name="app_trytoget_outplan">获取外勤计划失败</string>
     <string name="set_language">切换语言</string>
     <string name="select_form_phoneablum">从手机相册选择</string>

+ 18 - 11
app_modular/apputils/src/main/AndroidManifest.xml

@@ -1,20 +1,23 @@
-<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.modular.apputils">
 
     <application
         android:allowBackup="true"
         android:label="@string/app_name"
         android:supportsRtl="true">
-        <activity android:name=".activity.SingleImagePreviewActivity"
-                  android:screenOrientation="portrait">
+        <activity
+            android:name=".activity.SingleImagePreviewActivity"
+            android:screenOrientation="portrait">
             <intent-filter>
                 <action android:name="com.modular.tool.SingleImagePreviewActivity" />
+
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
         </activity>
-        <activity android:name=".activity.SelectNetAcitivty"
-            android:label="搜索字段"/>
-
+        <activity
+            android:name=".activity.SelectNetAcitivty"
+            android:label="搜索字段" />
 
         <!-- alipay sdk begin -->
 
@@ -23,17 +26,21 @@
             android:configChanges="orientation|keyboardHidden|navigation|screenSize"
             android:exported="false"
             android:screenOrientation="behind"
-            android:windowSoftInputMode="adjustResize|stateHidden" >
-        </activity>
+            android:windowSoftInputMode="adjustResize|stateHidden"></activity>
         <activity
             android:name="com.alipay.sdk.app.H5AuthActivity"
             android:configChanges="orientation|keyboardHidden|navigation"
             android:exported="false"
             android:screenOrientation="behind"
-            android:windowSoftInputMode="adjustResize|stateHidden" >
-        </activity>
+            android:windowSoftInputMode="adjustResize|stateHidden"></activity>
 
         <!-- alipay sdk end -->
+        <activity android:name=".activity.SimpleWebActivity">
+            <intent-filter>
+                <action android:name="com.modular.apputils.activity.SimpleWebActivity" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+        </activity>
     </application>
 
-</manifest>
+</manifest>

+ 131 - 0
app_modular/apputils/src/main/java/com/modular/apputils/activity/SimpleWebActivity.java

@@ -0,0 +1,131 @@
+package com.modular.apputils.activity;
+
+import android.annotation.SuppressLint;
+import android.content.ActivityNotFoundException;
+import android.content.Context;
+import android.content.Intent;
+import android.net.Uri;
+import android.os.Build;
+import android.os.Bundle;
+import android.webkit.CookieManager;
+import android.webkit.CookieSyncManager;
+import android.webkit.WebSettings;
+import android.webkit.WebView;
+import android.webkit.WebViewClient;
+
+import com.alibaba.fastjson.JSON;
+import com.common.LogUtil;
+import com.core.app.MyApplication;
+import com.core.base.BaseActivity;
+import com.core.utils.CommonUtil;
+import com.me.network.app.http.HttpClient;
+import com.me.network.app.http.Method;
+import com.me.network.app.http.rx.ResultListener;
+import com.me.network.app.http.rx.ResultSubscriber;
+import com.modular.apputils.R;
+
+public class SimpleWebActivity extends BaseActivity {
+private static final String TAG = "SimpleWebActivity";
+    WebView webView;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_simple_web);
+
+        webView= findViewById(R.id.mSimpleWebView);
+        webView.getSettings().setJavaScriptEnabled(true);
+        webView.getSettings().setAllowFileAccess(true);
+        webView.getSettings().setDomStorageEnabled(true);
+        webView.getSettings().setDatabaseEnabled(true);
+        webView.getSettings().setAppCacheEnabled(true);
+        webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);
+        
+        
+        
+        Intent intent = getIntent();
+        String  url = intent.getStringExtra("url");
+        getSupportActionBar().setTitle(intent.getStringExtra("p"));
+        LogUtil.d(TAG,"url:"+url+" title:"+intent.getStringExtra("p"));
+        if ("http://mall.ubtob.com".equals(url)){
+            initBusinessToken();
+        }
+       
+        setThirdPartyCookiesEnabled(true);
+        webView.setWebViewClient(new WebViewClient(){
+            public boolean shouldOverrideUrlLoading(WebView view, String url) {
+                LogUtil.d(TAG,"转发url:"+url);
+                if (url.startsWith(WebView.SCHEME_TEL) || url.startsWith("sms:") || url.startsWith(WebView.SCHEME_MAILTO)) {
+                    try {
+                        Intent intent = new Intent(Intent.ACTION_VIEW);
+                        intent.setData(Uri.parse(url));
+                        mContext.startActivity(intent);
+                    } catch (ActivityNotFoundException ignored) {
+                    }
+                    return true;
+                }
+                webView.loadUrl(url);
+                return true;
+            }
+
+            public void onPageFinished(WebView view, String url) {
+                super.onPageFinished(view, url);
+            }
+        });
+         webView.loadUrl(url);
+    }
+
+
+    //企业uu为空,则取附近账套和子帐套的
+    public void initBusinessToken(){
+          LogUtil.d(TAG, CommonUtil.getSharedPreferences(this,"erp_uu"));
+       
+          HttpClient httpClient=new HttpClient.Builder("https://account.ubtob.com/").build();
+                 httpClient.Api().send(new HttpClient.Builder()
+                 .url("api/user/getToken")
+                         .add("appId","b2b")
+                         .add("spaceDialectUID",CommonUtil.getSharedPreferences(this,"erp_uu"))
+                         .add("uid", MyApplication.getInstance().mLoginUser.getTelephone())
+                 .method(Method.GET)
+                 .build(),new ResultSubscriber<Object>(new ResultListener<Object>() {
+          
+                     @Override
+                     public void onResponse(Object o) {
+                         try {
+                             LogUtil.d(TAG,o.toString());
+                             String token= JSON.parseObject(o.toString()).getString("content");
+                             String url="https://account.ubtob.com/sso/login/proxy?appId=b2b&returnURL=https://www.usoftmall.com&token="+token+"&baseURL=https://www.usoftmall.com/login/other&isLoginAll=false";
+                             webView.loadUrl(url);
+                         } catch (Exception e) {
+                             e.printStackTrace();
+                         }
+                     }
+                 }));
+    }
+
+    public static void synCookies(Context context, String url,String cookies) {
+        CookieSyncManager.createInstance(context);
+        CookieManager cookieManager = CookieManager.getInstance();
+        cookieManager.setAcceptCookie(true);
+        cookieManager.removeSessionCookie();//移除  
+        LogUtil.d(TAG, cookies);
+        cookieManager.setCookie(url, cookies);
+        CookieSyncManager.getInstance().sync();
+    }
+
+
+    @SuppressWarnings("static-method")
+    public void setCookiesEnabled(final boolean enabled) {
+        CookieManager.getInstance().setAcceptCookie(enabled);
+    }
+
+    @SuppressLint("NewApi")
+    public void setThirdPartyCookiesEnabled(final boolean enabled) {
+        if (Build.VERSION.SDK_INT >= 21) {
+            CookieManager.getInstance().setAcceptThirdPartyCookies(webView, enabled);
+        }else {
+            CookieManager.getInstance().setAcceptCookie(true);
+        }
+    }
+    
+}

+ 13 - 0
app_modular/apputils/src/main/res/layout/activity_simple_web.xml

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:context="com.modular.apputils.activity.SimpleWebActivity">
+    <WebView
+        android:id="@+id/mSimpleWebView"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:background="@color/linen" />
+</LinearLayout>

+ 70 - 52
app_modular/appworks/src/main/java/com/uas/appworks/CRM/erp/activity/BusinessActivity.java

@@ -124,10 +124,10 @@ public class BusinessActivity extends BaseActivity implements View.OnClickListen
 
     @Override
     public boolean onOptionsItemSelected(MenuItem item) {
-        if (item.getItemId() == R.id.crm_data_find){
+        if (item.getItemId() == R.id.crm_data_find) {
             View view = getWindow().findViewById(item.getItemId());
             showPopupWindow(view);
-        }else if (item.getItemId() == android.R.id.home){
+        } else if (item.getItemId() == android.R.id.home) {
             onBackPressed();
         }
         return true;
@@ -135,15 +135,15 @@ public class BusinessActivity extends BaseActivity implements View.OnClickListen
 
     @Override
     public void onClick(View v) {
-        if (v.getId() ==  R.id.bt_create){
+        if (v.getId() == R.id.bt_create) {
             if (VersionUtil.canShowCrm2_0() && !CommonUtil.isBiteman())
                 startActivity(new Intent(this, AddBusinessActivity.class));
             else startActivity(new Intent(this, BusinessAddActivity.class));
-        }else if (v.getId() == R.id.bt_qiang){
+        } else if (v.getId() == R.id.bt_qiang) {
             startActivity(new Intent(this, BusinessDetailActivty.class).putExtra("bt_type", 1));
-        }else if (v.getId() == R.id.bt_manage){
+        } else if (v.getId() == R.id.bt_manage) {
             startActivity(new Intent(this, BusinessDetailActivty.class).putExtra("bt_type", 2));
-        }else if (v.getId() == R.id.bt_go){
+        } else if (v.getId() == R.id.bt_go) {
             startActivity(new Intent(this, BusinessStateActivity.class).putExtra("bt_type", 0));
         }
     }
@@ -156,61 +156,79 @@ public class BusinessActivity extends BaseActivity implements View.OnClickListen
                     progressDialog.dismiss();
                     gridlists.clear();
                     Log.i(TAG, "json:" + msg.getData().getString("result"));
-                    JSONObject root = JSON.parseObject(msg.getData().getString("result"));
-                    JSONArray chances = root.getJSONArray("chances");
-                    ArrayList<Integer> counts = new ArrayList<>();
-                    ArrayList<String> colors = new ArrayList<>();
-                    int countToatal = 0;
-                    if (!chances.isEmpty()) {
-                        ArrayList<String> items = new ArrayList<>();
-                        items.add(getString(R.string.color_text));
-                        // items.add("序号");
-                        items.add(getString(R.string.business_stage));
-                        items.add(getString(R.string.business_number));
-                        items.add(getString(R.string.business_Conversion_rate));
-                        gridlists.add(items);
-                        for (int i = 0; i < chances.size(); i++) {
-                            items = new ArrayList<>();
-                            String currentprocess = chances.getJSONObject(i).getString("currentprocess");
-                            String percent = chances.getJSONObject(i).getString("percent");
-                            String color = chances.getJSONObject(i).getString("color");
-                            int detno = chances.getJSONObject(i).getInteger("detno");
-                            int count = chances.getJSONObject(i).getInteger("count");
-                            items.add("#" + color);
-                            colors.add("#" + color);
-                            // items.add(String.valueOf(i + 1));
-                            items.add(currentprocess);
-                            items.add(String.valueOf(count));
-                            counts.add(count);
-                            countToatal = countToatal + count;
-                            items.add(percent);
-                            gridlists.add(items);
-                        }
-                    }
-                    //gridlists = (ArrayList) JSON.parseArray(gridData, ArrayList.class);
-                    hl_adapter = new HListViewOneAdapter(ct, gridlists);
-                    lv_grid_dispaly.setAdapter(hl_adapter);
-                    layout.setVisibility(View.VISIBLE);
-                    Log.i(TAG, "handleMessage:colors:" + JSON.toJSONString(colors));
-                    Log.i(TAG, "handleMessage:counts:" + JSON.toJSONString(counts));
-                    Log.i(TAG, "handleMessage:countToatal:" + countToatal);
-                    if (countToatal == 0) {//数据为空,显示空视图
-                        for (int i = 0; i < counts.size(); i++) {
-                            counts.set(i, 50);
-                        }
-                        countToatal = counts.size() * 50;
-                    }
-                    funnelView.setData(counts, countToatal, colors);
-                    funnelView.animateY();
+                    showFunelView(msg.getData().getString("result"));
                     break;
                 case Constants.APP_SOCKETIMEOUTEXCEPTION:
                     progressDialog.dismiss();
                     Log.i(TAG, "json:" + msg.getData().getString("result"));
+                    String json = "{\"sessionId\":\"A84EE897980B21770FD00FC69C47B27B\",\"chances\":[{\"detno\":1,\"percent\":\"0.00%\",\"count\":0,\"color\":\"485CC6\",\"currentprocess\":\"初次沟通\"},{\"detno\":2,\"percent\":\"0.00%\",\"count\":0,\"color\":\"4686CC\",\"currentprocess\":\"产品演示\"},{\"detno\":3,\"percent\":\"0.00%\",\"count\":0,\"color\":\"49B0C9\",\"currentprocess\":\"立项评估\"},{\"detno\":4,\"percent\":\"0.00%\",\"count\":0,\"color\":\"48C79E\",\"currentprocess\":\"需求分析\"},{\"detno\":5,\"percent\":\"0.00%\",\"count\":0,\"color\":\"55CC59\",\"currentprocess\":\"样品报价\"},{\"detno\":6,\"percent\":\"0.00%\",\"count\":0,\"color\":\"90BB42\",\"currentprocess\":\"商务谈判\"},{\"detno\":7,\"percent\":\"0.00%\",\"count\":0,\"color\":\"BAA535\",\"currentprocess\":\"合同签约\"},{\"detno\":8,\"percent\":\"0.00%\",\"count\":0,\"color\":\"C7853F\",\"currentprocess\":\"完成交易\"},{\"detno\":9,\"percent\":\"0.00%\",\"count\":0,\"color\":\"BB5743\",\"currentprocess\":\"多次交易\"}],\"success\":true}";
+                    showFunelView(json);
+                    break;
+                case Constants.APP_NOTNETWORK:
+                    progressDialog.dismiss();
+                    gridlists.clear();
+                    ToastMessage(getString(R.string.networks_out));
+                    json = "{\"sessionId\":\"A84EE897980B21770FD00FC69C47B27B\",\"chances\":[{\"detno\":1,\"percent\":\"0.00%\",\"count\":0,\"color\":\"485CC6\",\"currentprocess\":\"初次沟通\"},{\"detno\":2,\"percent\":\"0.00%\",\"count\":0,\"color\":\"4686CC\",\"currentprocess\":\"产品演示\"},{\"detno\":3,\"percent\":\"0.00%\",\"count\":0,\"color\":\"49B0C9\",\"currentprocess\":\"立项评估\"},{\"detno\":4,\"percent\":\"0.00%\",\"count\":0,\"color\":\"48C79E\",\"currentprocess\":\"需求分析\"},{\"detno\":5,\"percent\":\"0.00%\",\"count\":0,\"color\":\"55CC59\",\"currentprocess\":\"样品报价\"},{\"detno\":6,\"percent\":\"0.00%\",\"count\":0,\"color\":\"90BB42\",\"currentprocess\":\"商务谈判\"},{\"detno\":7,\"percent\":\"0.00%\",\"count\":0,\"color\":\"BAA535\",\"currentprocess\":\"合同签约\"},{\"detno\":8,\"percent\":\"0.00%\",\"count\":0,\"color\":\"C7853F\",\"currentprocess\":\"完成交易\"},{\"detno\":9,\"percent\":\"0.00%\",\"count\":0,\"color\":\"BB5743\",\"currentprocess\":\"多次交易\"}],\"success\":true}";
+                    showFunelView(json);
+                    break;
+                default:
+                    progressDialog.dismiss();
+                    json = "{\"sessionId\":\"A84EE897980B21770FD00FC69C47B27B\",\"chances\":[{\"detno\":1,\"percent\":\"0.00%\",\"count\":0,\"color\":\"485CC6\",\"currentprocess\":\"初次沟通\"},{\"detno\":2,\"percent\":\"0.00%\",\"count\":0,\"color\":\"4686CC\",\"currentprocess\":\"产品演示\"},{\"detno\":3,\"percent\":\"0.00%\",\"count\":0,\"color\":\"49B0C9\",\"currentprocess\":\"立项评估\"},{\"detno\":4,\"percent\":\"0.00%\",\"count\":0,\"color\":\"48C79E\",\"currentprocess\":\"需求分析\"},{\"detno\":5,\"percent\":\"0.00%\",\"count\":0,\"color\":\"55CC59\",\"currentprocess\":\"样品报价\"},{\"detno\":6,\"percent\":\"0.00%\",\"count\":0,\"color\":\"90BB42\",\"currentprocess\":\"商务谈判\"},{\"detno\":7,\"percent\":\"0.00%\",\"count\":0,\"color\":\"BAA535\",\"currentprocess\":\"合同签约\"},{\"detno\":8,\"percent\":\"0.00%\",\"count\":0,\"color\":\"C7853F\",\"currentprocess\":\"完成交易\"},{\"detno\":9,\"percent\":\"0.00%\",\"count\":0,\"color\":\"BB5743\",\"currentprocess\":\"多次交易\"}],\"success\":true}";
+                    showFunelView(json);
                     break;
             }
         }
     };
 
+    private void showFunelView(String result) {
+        JSONObject root = JSON.parseObject(result);
+        JSONArray chances = root.getJSONArray("chances");
+        ArrayList<Integer> counts = new ArrayList<>();
+        ArrayList<String> colors = new ArrayList<>();
+        int countToatal = 0;
+        if (!chances.isEmpty()) {
+            ArrayList<String> items = new ArrayList<>();
+            items.add(getString(R.string.color_text));
+            // items.add("序号");
+            items.add(getString(R.string.business_stage));
+            items.add(getString(R.string.business_number));
+            items.add(getString(R.string.business_Conversion_rate));
+            gridlists.add(items);
+            for (int i = 0; i < chances.size(); i++) {
+                items = new ArrayList<>();
+                String currentprocess = chances.getJSONObject(i).getString("currentprocess");
+                String percent = chances.getJSONObject(i).getString("percent");
+                String color = chances.getJSONObject(i).getString("color");
+                int detno = chances.getJSONObject(i).getInteger("detno");
+                int count = chances.getJSONObject(i).getInteger("count");
+                items.add("#" + color);
+                colors.add("#" + color);
+                // items.add(String.valueOf(i + 1));
+                items.add(currentprocess);
+                items.add(String.valueOf(count));
+                counts.add(count);
+                countToatal = countToatal + count;
+                items.add(percent);
+                gridlists.add(items);
+            }
+        }
+        //gridlists = (ArrayList) JSON.parseArray(gridData, ArrayList.class);
+        hl_adapter = new HListViewOneAdapter(ct, gridlists);
+        lv_grid_dispaly.setAdapter(hl_adapter);
+        layout.setVisibility(View.VISIBLE);
+        Log.i(TAG, "handleMessage:colors:" + JSON.toJSONString(colors));
+        Log.i(TAG, "handleMessage:counts:" + JSON.toJSONString(counts));
+        Log.i(TAG, "handleMessage:countToatal:" + countToatal);
+        if (countToatal == 0) {//数据为空,显示空视图
+            for (int i = 0; i < counts.size(); i++) {
+                counts.set(i, 50);
+            }
+            countToatal = counts.size() * 50;
+        }
+        funnelView.setData(counts, countToatal, colors);
+        funnelView.animateY();
+    }
+
     private String currentDate;
 
     private void sendHttpResquest(String currentdate) {

+ 38 - 3
app_modular/appworks/src/main/java/com/uas/appworks/OA/erp/activity/form/DataFormDetailActivity.java

@@ -43,15 +43,16 @@ import com.core.base.BaseActivity;
 import com.core.model.SelectBean;
 import com.core.net.http.ViewUtil;
 import com.core.utils.CommonUtil;
-import com.modular.apputils.utils.PopupWindowHelper;
 import com.core.utils.time.wheel.DateTimePicker;
 import com.core.widget.view.Activity.SelectActivity;
 import com.core.widget.view.ListViewInScroller;
 import com.core.widget.view.model.SelectAimModel;
 import com.core.widget.view.selectcalendar.SelectCalendarActivity;
+import com.core.widget.view.selectcalendar.bean.Data;
 import com.lidroid.xutils.ViewUtils;
+import com.modular.apputils.activity.SelectNetAcitivty;
+import com.modular.apputils.utils.PopupWindowHelper;
 import com.uas.appworks.OA.erp.activity.CommonDocDetailsActivity;
-import com.core.widget.view.selectcalendar.bean.Data;
 import com.uas.appworks.OA.erp.model.form.GroupData;
 import com.uas.appworks.R;
 
@@ -1177,6 +1178,7 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
                                     fields = new String[]{"ama_customer"};
                                 }
                                 param.put("caller", caller);
+                                LogUtil.d("DataFormDetailActivity","SelectNetAcitivty:"+caller);
                                 if (caller.equals("MainTain")) {
                                     if ("mt_custcode".equals(data.getField())) {
                                         fields = new String[]{"mt_custname"};
@@ -1191,7 +1193,15 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
                                         fields = new String[]{"mtd_proname", "mtd_remark", "mtd_unit"};
                                         param.put("caller", "sProduct");
                                     }
-
+                                }else{
+                                    //SF类型需求更改,支持联动
+                                    LogUtil.d("DataFormDetailActivity","SelectNetAcitivty:"+caller);
+                                    startActivityForResult(new Intent(ct, SelectNetAcitivty.class)
+                                                    .putExtra("fieldKey", data.getField())
+                                                    .putExtra("caller", caller)
+                                                    .putExtra("isForm", true)//是否是主表
+                                            , 90);
+                                    return;//不处理下面旧的处理逻辑
                                 }
                                 param.put("page", "1");
                                 param.put("which", "form");
@@ -1512,6 +1522,31 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
                 break;
         }
 
+
+        if (90 == requestCode && data != null) {
+            String json = data.getStringExtra("data");
+            LogUtil.d("DataFormDetailActivity","json=" + json);
+            try {
+                paseSelectDbFind(JSON.parseObject(json));
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+
+    }
+
+
+
+    private void paseSelectDbFind(JSONObject object) throws Exception {
+        List<Data> tempLists = mAdapter.getmListData().get(0).getDatas();
+        if (!ListUtils.isEmpty(tempLists) && object != null && !object.isEmpty()) {
+            for (Data e : tempLists) {
+                if (object.containsKey(e.getField())) {
+                    e.setValue(JSONUtil.getText(object, e.getField()));
+                }
+            }
+            mAdapter.notifyDataSetChanged();
+        }
     }
 
     private void parseResultByField(Intent data) {