Browse Source

RMS开发功能 主界面

Arisono 9 years ago
parent
commit
0aedbb7d96
29 changed files with 605 additions and 243 deletions
  1. 3 3
      WeiChat/src/main/AndroidManifest.xml
  2. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/MyApplication.java
  3. 0 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/calendar/bizs/decors/DPDecor.java
  4. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/calendar/cons/DPMode.java
  5. 0 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/calendar/views/MonthView.java
  6. 5 5
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/calendar/views/TaskDatePicker.java
  7. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/calendar/views/TimeView.java
  8. 164 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/ClientActivity.java
  9. 12 18
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/SaleChartActivity.java
  10. 4 2
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/WebViewCommActivity.java
  11. 101 2
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/BusinessActivity.java
  12. 8 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/BusinessDetailActivty.java
  13. 9 9
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/adapter/HListViewAdapter.java
  14. 5 4
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/net/HttpClient.java
  15. 4 4
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/net/ViewUtil.java
  16. 2 2
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/SubscriptionActivity.java
  17. 40 40
      WeiChat/src/main/java/com/xzjmyk/pm/activity/util/CalendarUtils.java
  18. 63 69
      WeiChat/src/main/java/com/xzjmyk/pm/activity/view/FunnelView.java
  19. 4 4
      WeiChat/src/main/res/drawable/oa_signin_tv_bg.xml
  20. 12 3
      WeiChat/src/main/res/drawable/shape_btn_bussine.xml
  21. 1 32
      WeiChat/src/main/res/layout/act_statistical_barchart_scale.xml
  22. 58 9
      WeiChat/src/main/res/layout/activity_business.xml
  23. 20 9
      WeiChat/src/main/res/layout/activity_business_qiang_activty.xml
  24. 11 0
      WeiChat/src/main/res/layout/activity_client.xml
  25. 44 1
      WeiChat/src/main/res/layout/inculde_grid_view.xml
  26. 2 9
      WeiChat/src/main/res/menu/menu_crm_find.xml
  27. 19 1
      WeiChat/src/main/res/values/styles.xml
  28. 1 0
      pullToRefershLibraryMy/build.gradle
  29. 10 10
      pullToRefershLibraryMy/src/main/java/com/handmark/pulltorefresh/library/PullToRefreshBase.java

+ 3 - 3
WeiChat/src/main/AndroidManifest.xml

@@ -399,15 +399,15 @@
         <activity android:name=".ui.erp.activity.SubscribeActivity" />
         <activity android:name=".ui.message.SubscriptionActivity" />
         <activity android:name=".ui.circle.PhoneSelectActivity" />
-        <activity
-            android:name=".ui.erp.activity.ClientActivity"
-            android:theme="@style/Theme.AppCompat.Light.NoActionBar" />
+        <activity android:name=".ui.erp.activity.ClientActivity" />
         <activity
             android:name=".ui.erp.activity.SigninActivity"
             android:theme="@style/Theme.AppCompat.Light.NoActionBar" />
         <activity
             android:name=".ui.erp.activity.OA_AlarmaActivity"
             android:theme="@style/Theme.AppCompat.Light.NoActionBar" />
+        <activity android:name=".ui.erp.activity.crm.BusinessActivity"></activity>
+        <activity android:name=".ui.erp.activity.crm.BusinessDetailActivty"></activity>
     </application>
 
 </manifest>

+ 1 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/MyApplication.java

@@ -41,7 +41,7 @@ public class MyApplication extends Application {
 
     public String JSESSION_B2B;
     public static Cookie cookie;
-    public static  Cookie cookieERP;
+    public static Cookie cookieERP;
 
 
     private static MyApplication INSTANCE = null;

+ 0 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/calendar/bizs/decors/DPDecor.java

@@ -133,5 +133,4 @@ public class DPDecor {
     }
 
 
-
 }

+ 1 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/calendar/cons/DPMode.java

@@ -10,6 +10,6 @@ package com.xzjmyk.pm.activity.ui.calendar.cons;
  * @author AigeStudio 2015-07-02
  */
 public enum DPMode {
-    SINGLE, MULTIPLE,NONE
+    SINGLE, MULTIPLE, NONE
 
 }

+ 0 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/calendar/views/MonthView.java

@@ -35,7 +35,6 @@ import java.util.List;
 import java.util.Map;
 
 
-
 /**
  * MonthView
  *

+ 5 - 5
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/calendar/views/TaskDatePicker.java

@@ -138,7 +138,7 @@ public class TaskDatePicker extends LinearLayout {
         addView(llWeek, llParams);
 
         // ------------------------------------------------------------------------------------月视图
-        taskMonthView = new TaskMonthView(context,this);
+        taskMonthView = new TaskMonthView(context, this);
         taskMonthView.setOnDateChangeListener(new TaskMonthView.OnDateChangeListener() {
             @Override
             public void onMonthChange(int month) {
@@ -229,12 +229,12 @@ public class TaskDatePicker extends LinearLayout {
         timeView.setOnDatePickedListener(onDatePickedListener);
     }
 
-    public void setTime(boolean is,String tim) {
-        taskMonthView.setTime(is,tim);
+    public void setTime(boolean is, String tim) {
+        taskMonthView.setTime(is, tim);
     }
 
-    public void setMonth(boolean is,String date) {
-        timeView.setMonth(is,date);
+    public void setMonth(boolean is, String date) {
+        timeView.setMonth(is, date);
     }
 
     /**

+ 1 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/calendar/views/TimeView.java

@@ -62,7 +62,7 @@ public class TimeView extends LinearLayout implements View.OnClickListener {
                     strTime=time+"";
                 }
                 tvTime.setText(strTime);
-                taskDatePicker.setTime(true,strTime);
+                taskDatePicker.setTime(true, strTime);
 //                setTime(time);
                 if (isMonth){
                     onDatePickedListener.onDatePicked(month+" " + strTime);

+ 164 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/ClientActivity.java

@@ -1,11 +1,34 @@
 package com.xzjmyk.pm.activity.ui.erp.activity;
 
+import android.content.Intent;
+import android.graphics.Color;
+import android.graphics.Typeface;
 import android.os.Bundle;
 import android.view.Menu;
 import android.view.MenuItem;
+import android.view.View;
+import android.widget.ImageButton;
 
+import com.github.mikephil.charting.charts.BarChart;
+import com.github.mikephil.charting.components.Legend;
+import com.github.mikephil.charting.components.XAxis;
+import com.github.mikephil.charting.components.YAxis;
+import com.github.mikephil.charting.data.BarData;
+import com.github.mikephil.charting.data.BarDataSet;
+import com.github.mikephil.charting.data.BarEntry;
+import com.github.mikephil.charting.data.Entry;
+import com.github.mikephil.charting.listener.OnChartValueSelectedListener;
+import com.github.mikephil.charting.utils.ColorTemplate;
+import com.github.mikephil.charting.utils.Highlight;
+import com.github.mikephil.charting.utils.LargeValueFormatter;
+import com.lidroid.xutils.ViewUtils;
+import com.lidroid.xutils.view.annotation.ViewInject;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
+import com.xzjmyk.pm.activity.ui.erp.activity.crm.BusinessActivity;
+import com.xzjmyk.pm.activity.ui.erp.view.MyMarkerView;
+
+import java.util.ArrayList;
 
 /**
  * @功能:CRM 功能模块
@@ -13,17 +36,109 @@ import com.xzjmyk.pm.activity.ui.base.BaseActivity;
  * @param:
  * @return:
  */
-public class ClientActivity extends BaseActivity {
+public class ClientActivity extends BaseActivity implements View.OnClickListener {
+
+    @ViewInject(R.id.ib_business)
+    private ImageButton ib_business;
+    @ViewInject(R.id.ib_customer)
+    private ImageButton ib_customer;
+    @ViewInject(R.id.crm_chart_bar)
+    private ImageButton ib_customer_vistor;
+    @ViewInject(R.id.crm_chart_bar)
+    private ImageButton ib_waller;
+
+    @ViewInject(R.id.crm_chart_bar)
+    private BarChart mChart;
+    private BarData data;
+    private ArrayList<BarDataSet> dataSets;
+    private MyMarkerView mv;
+    private float xZoom = 8f;
+    private Typeface tf;
+
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_client);
+        ViewUtils.inject(this);
         initView();
+        initData();
     }
 
     private void initView() {
         getSupportActionBar().setTitle("CRM");
+        initBarChart();
+        initListener();
+    }
+
+    private void initListener() {
+        ib_business.setOnClickListener(this);
+    }
+
+    private void initData() {
+        setData(5, 50);
+    }
+
+    private void initBarChart() {
+        mv = new MyMarkerView(this, R.layout.custom_marker_view);
+        mChart.setMarkerView(mv);
+        mChart.setDescription("");
+        mChart.setMaxVisibleValueCount(60);
+        mChart.setPinchZoom(false);
+        mChart.setDrawBarShadow(false);
+        mChart.setDrawGridBackground(false);
+
+        XAxis xAxis = mChart.getXAxis();
+        xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
+        // xAxis.setSpaceBetweenLabels(30);
+        xAxis.setLabelsToSkip(0);
+        xAxis.setAxisLineColor(getResources().getColor(R.color.red));
+        xAxis.setSpaceBetweenLabels(8);
+        xAxis.setAxisLineWidth(0f);
+
+        xAxis.setDrawGridLines(false);
+        mChart.getAxisLeft().setDrawGridLines(false);
+        mChart.animateY(2500);
+        tf = Typeface.createFromAsset(getAssets(),
+                "OpenSans-Regular.ttf");
+        Legend l = mChart.getLegend();
+        l.setPosition(Legend.LegendPosition.BELOW_CHART_LEFT);
+        l.setTypeface(tf);
+
+        XAxis xl = mChart.getXAxis();
+        xl.setTypeface(tf);
+
+        YAxis leftAxis = mChart.getAxisLeft();
+        leftAxis.setTypeface(tf);
+        leftAxis.setValueFormatter(new LargeValueFormatter());
+        leftAxis.setDrawGridLines(false);
+        leftAxis.setSpaceTop(25f);
+        leftAxis.setAxisLineColor(getResources().getColor(R.color.red));
+        mChart.getAxisRight().setEnabled(false);
+        mChart.getAxisLeft().setEnabled(false);
+        mChart.setMaxVisibleValueCount(10);
+        mChart.setOnChartValueSelectedListener(new OnChartValueSelectedListener() {
+
+            @Override
+            public void onValueSelected(Entry e, int dataSetIndex, Highlight h) {
+            }
+
+            @Override
+            public void onNothingSelected() {
+
+            }
+        });
+        ArrayList<BarEntry> yVals1 = new ArrayList<BarEntry>();
+        ArrayList<String> xVals = new ArrayList<String>();
+
+        BarDataSet set1 = new BarDataSet(yVals1, "日销售额");
+        set1.setColor(Color.rgb(164, 228, 251));
+        dataSets = new ArrayList<BarDataSet>();
+        dataSets.add(set1);
+        data = new BarData(xVals, dataSets);
+        mChart.setNoDataText(" ");
+        mChart.setData(data);
+        mChart.invalidate();
     }
 
 
@@ -43,4 +158,52 @@ public class ClientActivity extends BaseActivity {
         super.onBackPressed();
         finish();
     }
+
+
+    protected String[] mMonths = new String[]{
+            "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"
+    };
+
+    private void setData(int count, float range) {
+
+        ArrayList<String> xVals = new ArrayList<String>();
+        for (int i = 0; i < count; i++) {
+            xVals.add(mMonths[i % 12]);
+        }
+
+        ArrayList<BarEntry> yVals1 = new ArrayList<BarEntry>();
+
+        for (int i = 0; i < count; i++) {
+            float mult = (range + 1);
+            float val = (float) (Math.random() * mult);
+            yVals1.add(new BarEntry(val, i));
+        }
+        BarDataSet set1 = new BarDataSet(yVals1, "月销售额(单位:人民币 元)");
+        set1.setColors(ColorTemplate.VORDIPLOM_COLORS);
+        //set1.setVisible(false);
+        //set1.setDrawValues(false);
+        dataSets.clear();
+        dataSets.add(set1);
+
+        data = new BarData(xVals, dataSets);
+        mChart.setData(data);
+        mChart.invalidate();
+
+    }
+
+    @Override
+    public void onClick(View v) {
+        switch (v.getId()) {
+            case R.id.ib_business:
+                startActivity(new Intent(this, BusinessActivity.class));
+                break;
+            case R.id.ib_customer:
+                break;
+            case R.id.ib_customer_vistor:
+                break;
+            case R.id.ib_waller:
+
+                break;
+        }
+    }
 }

+ 12 - 18
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/SaleChartActivity.java

@@ -13,6 +13,7 @@ import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 
+import com.alibaba.fastjson.JSON;
 import com.github.mikephil.charting.animation.Easing;
 import com.github.mikephil.charting.charts.BarChart;
 import com.github.mikephil.charting.charts.PieChart;
@@ -55,6 +56,7 @@ import android.graphics.Typeface;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
+import android.util.Log;
 import android.view.View;
 import android.view.View.OnClickListener;
 import android.widget.DatePicker;
@@ -77,18 +79,19 @@ public class SaleChartActivity extends BaseActivity implements OnClickListener{
 	/**@注释:饼图  */
 	@ViewInject(R.id.bc_scale_piechart_view)
 	private PieChart pieChart;
-	
+
 	private BarData data;
 	private ArrayList<BarDataSet> dataSets;
 	private MyMarkerView mv;
+	private float xZoom = 8f;//x轴显示数
+	private Typeface tf;
 	/**@注释:组装日期格式  */
 	private Map<String, Object> dateMap=new HashMap<String, Object>();
 	/**@注释:饼图  */
 	private final static int TYPE_PINCHART=2;
 	/**@注释:直方图  */
 	private final static int TYPE_BARCHART=1;
-	
-	
+
 	private Calendar calendar;
 	private MonPickerDialog dialog;
 	private Context ct;
@@ -108,10 +111,8 @@ public class SaleChartActivity extends BaseActivity implements OnClickListener{
 	@ViewInject(R.id.layout)
 	private HorizontalScrollView layout;
 	private CustomProgressDialog progressDialog;
-	//x轴显示数
-	private float xZoom =8f;
-	private Typeface tf;
-	
+
+
 	private final static int LOAD_PIE_SUCCESS=1;
 
 	private final static int LOAD_LINE_SUCCESS=2;
@@ -125,7 +126,7 @@ public class SaleChartActivity extends BaseActivity implements OnClickListener{
 				progressDialog.dismiss();
 				break;
 				case LOAD_LINE_SUCCESS:
-                       handlerUpdateUI(msg);
+					handlerUpdateUI(msg);
 					break;
 			default:
 				break;
@@ -137,14 +138,6 @@ public class SaleChartActivity extends BaseActivity implements OnClickListener{
 	@Override
 	public void onClick(View v) {
        switch (v.getId()) {
-//		case R.id.tv_back_bar:
-//			onBackPressed();
-//			break;
-//	    case R.id.iv_refesh:
-//	    	initData();
-//	    	mChart.animateXY(3000, 3000);
-//
-//	    	break;
 	    case R.id.tv_date:
 	    	 dialog=new MonPickerDialog(
          			SaleChartActivity.this, 
@@ -283,6 +276,7 @@ public class SaleChartActivity extends BaseActivity implements OnClickListener{
 		leftAxis.setSpaceTop(25f);
 		leftAxis.setAxisLineColor(getResources().getColor(R.color.red));
 
+
 		mChart.getAxisRight().setEnabled(false);
 		mChart.setMaxVisibleValueCount(10);
 		
@@ -454,14 +448,14 @@ public class SaleChartActivity extends BaseActivity implements OnClickListener{
 		mChart.setData(data);
 		//mChart.getLegend().setEnabled(false);
 		mChart.invalidate();
-		
+		Log.i("Arison", "gridlists:" + JSON.toJSONString(gridlists));
 		if (hl_adapter==null) {
 			hl_adapter=new HListViewAdapter(ct, gridlists);
 			lv_grid_dispaly.setAdapter(hl_adapter);
 		}else{
 		   hl_adapter.notifyDataSetChanged();
 		}
-         
+
 		layout.setVisibility(View.VISIBLE);
 		progressDialog.dismiss();
 	}

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

@@ -93,7 +93,7 @@ public class WebViewCommActivity extends BaseActivity {
                     }
                 } else {
                     if (isCookie) {
-                        synCookies(WebViewCommActivity.this, "http://www.ubtob.com/#");
+                        synCookies(WebViewCommActivity.this, url);
                         view.loadUrl(url);
                     } else {
                         view.loadUrl(url);
@@ -131,7 +131,7 @@ public class WebViewCommActivity extends BaseActivity {
      * 同步一下cookie
      */
     public void synCookies(Context context, String url) {
-        if (MyApplication.cookieERP == null) return;
+        // if (MyApplication.cookieERP == null) return;
         CookieSyncManager.createInstance(context);
         CookieManager cookieManager = CookieManager.getInstance();
         cookieManager.setAcceptCookie(true);
@@ -141,6 +141,8 @@ public class WebViewCommActivity extends BaseActivity {
         String cookieStr = sessionCookie.getName() + "="
                 + sessionCookie.getValue() + "; domain="
                 + sessionCookie.getDomain();
+        Log.i("Arison", "cookieStr:" + cookieStr);
+        Log.i("Arison", "cookieStr sessionId:" + CommonUtil.getSharedPreferences(this, "sessionId"));
         cookieManager.setCookie(url, "JSESSIONID=" + CommonUtil.getSharedPreferences(this, "sessionId"));//cookies是在HttpClient中获得的cookie
         CookieSyncManager.getInstance().sync();
     }

+ 101 - 2
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/BusinessActivity.java

@@ -1,13 +1,112 @@
 package com.xzjmyk.pm.activity.ui.erp.activity.crm;
 
-import android.support.v7.app.AppCompatActivity;
 import android.os.Bundle;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.View;
+import android.widget.Button;
+import android.widget.HorizontalScrollView;
 
-public class BusinessActivity extends AppCompatActivity {
+import com.alibaba.fastjson.JSON;
+import com.lidroid.xutils.ViewUtils;
+import com.lidroid.xutils.view.annotation.ViewInject;
+import com.xzjmyk.pm.activity.R;
+import com.xzjmyk.pm.activity.ui.base.BaseActivity;
+import com.xzjmyk.pm.activity.ui.erp.adapter.HListViewAdapter;
+import com.xzjmyk.pm.activity.ui.erp.net.ViewUtil;
+import com.xzjmyk.pm.activity.ui.erp.view.ListViewInScroller;
+import com.xzjmyk.pm.activity.view.FunnelView;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class BusinessActivity extends BaseActivity implements View.OnClickListener {
+
+
+    @ViewInject(R.id.bt_qiang)
+    private Button bt_qiang;
+    @ViewInject(R.id.bt_create)
+    private Button bt_create;
+    @ViewInject(R.id.bt_manage)
+    private Button bt_manage;
+    @ViewInject(R.id.bt_go)
+    private Button bt_go;
+
+    @ViewInject(R.id.funnelview)
+    private FunnelView funnelView;
+    @ViewInject(R.id.layout)
+    private HorizontalScrollView layout;
+    @ViewInject(R.id.lv_grid_dispaly)
+    private ListViewInScroller lv_grid_dispaly;
+    private HListViewAdapter hl_adapter;
+    private ArrayList<ArrayList<String>> gridlists = new ArrayList<ArrayList<String>>();
+    private String gridData = "[[\"颜色\",\"序号\",\"商机阶段\",\"商机数量\",\"商机转化率\"],[\"1\",\"胜芳\",\"152,002\",\"1223\",\"22\"],[\"2\",\"B2B平台\",\"8,775\",\"22\",\"323\"],[\"3\",\"峰闵\",\"2,000\",\"232\",\"43242\"],[\"4\",\"扬宇\",\"11\",\"12312\",\"232\"]]";
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_business);
+        initView();
+        initData();
+    }
+
+    public void initView() {
+        getSupportActionBar().setTitle("商机");
+        ViewUtils.inject(this);
+
+        bt_qiang.setOnClickListener(this);
+    }
+
+    public void initData() {
+        gridlists = (ArrayList) JSON.parseArray(gridData, ArrayList.class);
+        hl_adapter = new HListViewAdapter(this, gridlists);
+        lv_grid_dispaly.setAdapter(hl_adapter);
+        layout.setVisibility(View.VISIBLE);
+
+
+        List<Integer> moneys = new ArrayList<>();
+        int x1 = 5000;
+        moneys.add(x1);
+        int x2 = 4000;
+        moneys.add(x2);
+        int x3 = 3300;
+        moneys.add(x3);
+        int x4 = 3000;
+        moneys.add(x4);
+        int x5 = 3000;
+        moneys.add(x5);
+        int x6 = 3300;
+        moneys.add(x6);
+        int x7 = 3000;
+        moneys.add(x7);
+        int x8 = 3000;
+        moneys.add(x8);
+        int x9 = 3000;
+        moneys.add(x9);
+        int x10 = 3000;
+        moneys.add(x10);
+        funnelView.setData(moneys, x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9 + x10);
+        funnelView.animateY();
+    }
+
+
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        getMenuInflater().inflate(R.menu.menu_crm_find, menu);
+        return true;
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        return super.onOptionsItemSelected(item);
+    }
+
+    @Override
+    public void onClick(View v) {
+        switch (v.getId()) {
+            case R.id.bt_qiang:
+
+                break;
+        }
     }
 }

+ 8 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/BusinessDetailActivty.java

@@ -4,8 +4,15 @@ import android.support.v7.app.AppCompatActivity;
 import android.os.Bundle;
 
 import com.xzjmyk.pm.activity.R;
+import com.xzjmyk.pm.activity.ui.base.BaseActivity;
 
-public class BusinessDetailActivty extends AppCompatActivity {
+/**
+ * @功能:商机列表
+ * @author:Arisono
+ * @param:
+ * @return:
+ */
+public class BusinessDetailActivty extends BaseActivity {
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {

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

@@ -51,19 +51,18 @@ public class HListViewAdapter extends BaseAdapter {
 	@Override
 	public View getView(int index, View view, ViewGroup arg2) {
 		ArrayList<String> list = lists.get(index);
-		/**@注释:创建临时数组  */
 		TextView [] views=new TextView[list.size()];
 		if(view == null){
 			view = inflater.inflate(R.layout.list_item_empty, null);
 			LinearLayout topview =(LinearLayout) view.findViewById(R.id.ly_top_view);
-
-			LinearLayout ly_grid=new LinearLayout(ct);/**@注释:动态创建View item  */
+			//根部布局
+			LinearLayout ly_grid = new LinearLayout(ct);
 			LinearLayout.LayoutParams lp=new LinearLayout.LayoutParams(
 					LayoutParams.MATCH_PARENT,
 					LayoutParams.MATCH_PARENT);
 			ly_grid.setLayoutParams(lp);
 			ly_grid.setOrientation(LinearLayout.HORIZONTAL);
-			
+			//水平线条
 			View horizontal=new View(ct);
 			ViewGroup.LayoutParams hp = new ViewGroup.LayoutParams( 
 	                ViewGroup.LayoutParams.MATCH_PARENT, 
@@ -73,10 +72,10 @@ public class HListViewAdapter extends BaseAdapter {
 			
 			/**@注释:创建textview  */
 			for (int i = 0; i < list.size(); i++) {
+				//垂直线条
 				View vertical=new View(ct);
-				ViewGroup.LayoutParams vp = new ViewGroup.LayoutParams(
-						CommonUtil.dip2px(ct, 1),
-		                ViewGroup.LayoutParams.MATCH_PARENT); 
+				ViewGroup.LayoutParams vp = new ViewGroup.LayoutParams(CommonUtil.dip2px(ct, 1),
+						ViewGroup.LayoutParams.MATCH_PARENT);
 				vertical.setLayoutParams(vp);
 				vertical.setBackground(ct.getResources().getDrawable(R.drawable.domo_toolbar_bg));
 				
@@ -85,9 +84,10 @@ public class HListViewAdapter extends BaseAdapter {
 						LayoutParams.WRAP_CONTENT,
 						LayoutParams.MATCH_PARENT);
 				if (i==0) {
-					tView.setWidth(CommonUtil.dip2px(ct, 75));
+					tView.setWidth(CommonUtil.dip2px(ct, 55));
+
 				}else{
-					tView.setWidth(CommonUtil.dip2px(ct, 125));
+					tView.setWidth(CommonUtil.dip2px(ct, 70));
 				}
 				tView.setMaxLines(8);
 				//tView.setLines(1);

+ 5 - 4
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/net/HttpClient.java

@@ -7,6 +7,7 @@ import android.net.NetworkInfo;
 import android.text.TextUtils;
 import android.util.Log;
 
+import com.alibaba.fastjson.JSON;
 import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.ui.erp.hmac.HmacUtils;
 
@@ -328,8 +329,8 @@ public class HttpClient {
             } else {
                 result = "207";
             }
-            cookieStore = ((AbstractHttpClient) httpclient)
-                    .getCookieStore();
+            cookieStore = ((AbstractHttpClient) httpclient).getCookieStore();
+            Log.i("Arison", "cookies:" + JSON.toJSONString(cookieStore));
             for (int i = 0; i < cookieStore.getCookies().size(); i++) {
                 if ("www.ubtob.com".equals(cookieStore.getCookies().get(i)
                         .getDomain())) {
@@ -340,9 +341,9 @@ public class HttpClient {
                     MyApplication.cookie = cookieStore.getCookies()
                             .get(i);
                 } else if ("218.17.158.219".equals(cookieStore.getCookies().get(i)
-                        .getDomain())){
+                        .getDomain())) {
                     // 保存erp平台的cookie
-                    Log.i("Jession_cookie", cookieStore.getCookies().get(i).getValue());
+                    Log.i("Jession_cookie", "erp cookie:" + cookieStore.getCookies().get(i).getValue());
                     MyApplication.cookieERP = cookieStore.getCookies()
                             .get(i);
                 }

+ 4 - 4
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/net/ViewUtil.java

@@ -803,13 +803,13 @@ public class ViewUtil {
     /**
      * @注释:跳转嵌入网页页面
      * @param: url 经过登录验证之后的URL路径跳转
-     *         text 客户端嵌入网页页面动态显示文字
+     * text 客户端嵌入网页页面动态显示文字
      */
-    public static void  WebLinks(Context ct,String  url,String text,boolean isCookie){
-        Intent intent_web =new Intent(ct, WebViewCommActivity.class);
+    public static void WebLinks(Context ct, String url, String text, boolean isCookie) {
+        Intent intent_web = new Intent(ct, WebViewCommActivity.class);
         intent_web.putExtra("url", url);
         intent_web.putExtra("p", text);
-        intent_web.putExtra("cookie",isCookie);
+        intent_web.putExtra("cookie", isCookie);
         ct.startActivity(intent_web);
     }
     public static void clearAccount(Context ct){

+ 2 - 2
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/SubscriptionActivity.java

@@ -350,9 +350,9 @@ public class SubscriptionActivity extends BaseActivity {
                 public void onClick(View view) {
                     SubscriptionMessage bean = sortSubsrciprions.get(position).beans.get(i);
 //                    218.17.158.219:8090/ERP
-                    String url = "http://192.168.253.233:8080/ERP//jsps/mobile/charts.jsp?" + "numId=" + bean.getNUM_ID_() +
+                    String url = Constants.getAppBaseUrl(SubscriptionActivity.this) + "jsps/mobile/charts.jsp?" + "numId=" + bean.getNUM_ID_() +
                             "&mainId=" + bean.getINSTANCE_ID_() + "&insId=" + bean.getID_() +
-                            "&title=" + bean.getSON_TITLE_() + "&SESSIONID=" + CommonUtil.getSharedPreferences(SubscriptionActivity.this, "sessionId")
+                            "&title=" + bean.getSON_TITLE_() + "&sessionId=" + CommonUtil.getSharedPreferences(SubscriptionActivity.this, "sessionId")
                             + "&emCode=" + code;
 
                     Log.i("gongpengming", url);

+ 40 - 40
WeiChat/src/main/java/com/xzjmyk/pm/activity/util/CalendarUtils.java

@@ -3,44 +3,44 @@ package com.xzjmyk.pm.activity.util;
 import java.util.Calendar;
 
 public class CalendarUtils {
-private static Calendar calendar = Calendar.getInstance();
-	
-	public static int getCurrentYear(){
-		return calendar.get(Calendar.YEAR);
-	}
-	
-	public static int getCurrentMonth(){
-		return calendar.get(Calendar.MONTH)+1;
-	}
-	
-	public static int getCurrentDate(){
-		return calendar.get(Calendar.DATE);
-	}
-	
-	public static int getCurrentMaxNumOfMonth(){
-		return calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
-	}
-	
-	public static int getCurrentFirstWeekdayOfMoth(){
-		int today = getCurrentDate();
-		calendar.set(Calendar.DATE, 1);
-		int weekday = calendar.get(Calendar.DAY_OF_WEEK)-1;
-		calendar.set(Calendar.DATE, today);
-		return weekday;
-	}
-	
-	public static void nextMonth(){
-		calendar.add(Calendar.MONTH, 1);
-	}
-	
-	public static void preMonth(){
-		calendar.add(Calendar.MONTH, -1);
-	}
-	
-	public static void printCalendar(){
-		System.out.println(getCurrentYear()+"年"+getCurrentMonth()+"月"+getCurrentDate()+"日");
-		System.out.println("总共有"+getCurrentMaxNumOfMonth()+"天"+"第一天是星期"+getCurrentFirstWeekdayOfMoth());
-	}
-	
-	
+    private static Calendar calendar = Calendar.getInstance();
+
+    public static int getCurrentYear() {
+        return calendar.get(Calendar.YEAR);
+    }
+
+    public static int getCurrentMonth() {
+        return calendar.get(Calendar.MONTH) + 1;
+    }
+
+    public static int getCurrentDate() {
+        return calendar.get(Calendar.DATE);
+    }
+
+    public static int getCurrentMaxNumOfMonth() {
+        return calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
+    }
+
+    public static int getCurrentFirstWeekdayOfMoth() {
+        int today = getCurrentDate();
+        calendar.set(Calendar.DATE, 1);
+        int weekday = calendar.get(Calendar.DAY_OF_WEEK) - 1;
+        calendar.set(Calendar.DATE, today);
+        return weekday;
+    }
+
+    public static void nextMonth() {
+        calendar.add(Calendar.MONTH, 1);
+    }
+
+    public static void preMonth() {
+        calendar.add(Calendar.MONTH, -1);
+    }
+
+    public static void printCalendar() {
+        System.out.println(getCurrentYear() + "年" + getCurrentMonth() + "月" + getCurrentDate() + "日");
+        System.out.println("总共有" + getCurrentMaxNumOfMonth() + "天" + "第一天是星期" + getCurrentFirstWeekdayOfMoth());
+    }
+
+
 }

+ 63 - 69
WeiChat/src/main/java/com/xzjmyk/pm/activity/view/FunnelView.java

@@ -18,7 +18,7 @@ import java.util.List;
 /**
  * Created by zhengjiong on 16/1/20.
  */
-public class FunnelView extends View implements ValueAnimator.AnimatorUpdateListener{
+public class FunnelView extends View implements ValueAnimator.AnimatorUpdateListener {
     public static final float ANGLE_SCALE = 3.0f;
     private List<Integer> mMoneys = new ArrayList<>();
     private int maxMoney;
@@ -54,7 +54,7 @@ public class FunnelView extends View implements ValueAnimator.AnimatorUpdateList
     private Path mPath10;
 
 
-    private float mTotalHeight = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 240, getResources().getDisplayMetrics());
+    private float mTotalHeight = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 250, getResources().getDisplayMetrics());
 
     private float mPath1Height;
     private float mPath2Height;
@@ -79,8 +79,6 @@ public class FunnelView extends View implements ValueAnimator.AnimatorUpdateList
     private float mPath10AngleWidth;
 
 
-
-
     private float mPath3LineStartX;
     private float mPath3LineStartY;
 
@@ -90,12 +88,12 @@ public class FunnelView extends View implements ValueAnimator.AnimatorUpdateList
     private float mPath5LineStartX;
     private float mPath5LineStartY;
 
-    private float maxWidth = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 300, getResources().getDisplayMetrics());
+    private float maxWidth = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 330, getResources().getDisplayMetrics());
     private float maxLineH = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 90, getResources().getDisplayMetrics());
     private float minLineH = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 5, getResources().getDisplayMetrics());
 
-    private float startOffsetX = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 30, getResources().getDisplayMetrics());
-    private float startOffsetY = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 20, getResources().getDisplayMetrics());
+    private float startOffsetX = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 5, getResources().getDisplayMetrics());
+    private float startOffsetY = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 5, getResources().getDisplayMetrics());
 
     private float lineStartOffsetX = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 8, getResources().getDisplayMetrics());
     private float textStartOffsetX = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 7, getResources().getDisplayMetrics());
@@ -118,7 +116,7 @@ public class FunnelView extends View implements ValueAnimator.AnimatorUpdateList
         init();
     }
 
-    public void setData(List<Integer> moneys, int maxMoney){
+    public void setData(List<Integer> moneys, int maxMoney) {
         this.mMoneys = moneys;
         this.maxMoney = maxMoney;
 
@@ -132,13 +130,13 @@ public class FunnelView extends View implements ValueAnimator.AnimatorUpdateList
     private void calculate() {
         for (int i = 0; i < mMoneys.size(); i++) {
             int money = mMoneys.get(i);
-            float scale = (float)money / maxMoney;
+            float scale = (float) money / maxMoney;
             switch (i) {
                 case 0:
                     mPath1Height = mTotalHeight * scale * phaseX;
                     if (mPath1Height < minLineH * phaseX) {
                         mPath1Height = minLineH * phaseX;
-                    }else if (mPath1Height > maxLineH * phaseX) {
+                    } else if (mPath1Height > maxLineH * phaseX) {
                         mPath1Height = maxLineH * phaseX;
                     }
                     mPath1AngleWidth = mPath1Height / ANGLE_SCALE;
@@ -160,7 +158,7 @@ public class FunnelView extends View implements ValueAnimator.AnimatorUpdateList
                     mPath3Height = mTotalHeight * scale * phaseX;
                     if (mPath3Height < minLineH * phaseX) {
                         mPath3Height = minLineH * phaseX;
-                    }else if (mPath3Height > maxLineH * phaseX) {
+                    } else if (mPath3Height > maxLineH * phaseX) {
                         mPath3Height = maxLineH * phaseX;
                     }
 
@@ -172,7 +170,7 @@ public class FunnelView extends View implements ValueAnimator.AnimatorUpdateList
                     mPath4Height = mTotalHeight * scale * phaseX;
                     if (mPath4Height < minLineH * phaseX) {
                         mPath4Height = minLineH * phaseX;
-                    }else if (mPath4Height > maxLineH * phaseX) {
+                    } else if (mPath4Height > maxLineH * phaseX) {
                         mPath4Height = maxLineH * phaseX;
                     }
 
@@ -184,7 +182,7 @@ public class FunnelView extends View implements ValueAnimator.AnimatorUpdateList
                     mPath5Height = mTotalHeight * scale * phaseX;
                     if (mPath5Height < minLineH * phaseX) {
                         mPath5Height = minLineH * phaseX;
-                    }else if (mPath5Height > maxLineH * phaseX) {
+                    } else if (mPath5Height > maxLineH * phaseX) {
                         mPath5Height = maxLineH * phaseX;
                     }
 
@@ -196,7 +194,7 @@ public class FunnelView extends View implements ValueAnimator.AnimatorUpdateList
                     mPath6Height = mTotalHeight * scale * phaseX;
                     if (mPath6Height < minLineH * phaseX) {
                         mPath6Height = minLineH * phaseX;
-                    }else if (mPath6Height > maxLineH * phaseX) {
+                    } else if (mPath6Height > maxLineH * phaseX) {
                         mPath6Height = maxLineH * phaseX;
                     }
 
@@ -206,7 +204,7 @@ public class FunnelView extends View implements ValueAnimator.AnimatorUpdateList
                     mPath7Height = mTotalHeight * scale * phaseX;
                     if (mPath7Height < minLineH * phaseX) {
                         mPath7Height = minLineH * phaseX;
-                    }else if (mPath7Height > maxLineH * phaseX) {
+                    } else if (mPath7Height > maxLineH * phaseX) {
                         mPath7Height = maxLineH * phaseX;
                     }
 
@@ -216,7 +214,7 @@ public class FunnelView extends View implements ValueAnimator.AnimatorUpdateList
                     mPath8Height = mTotalHeight * scale * phaseX;
                     if (mPath8Height < minLineH * phaseX) {
                         mPath8Height = minLineH * phaseX;
-                    }else if (mPath8Height > maxLineH * phaseX) {
+                    } else if (mPath8Height > maxLineH * phaseX) {
                         mPath8Height = maxLineH * phaseX;
                     }
 
@@ -226,7 +224,7 @@ public class FunnelView extends View implements ValueAnimator.AnimatorUpdateList
                     mPath9Height = mTotalHeight * scale * phaseX;
                     if (mPath9Height < minLineH * phaseX) {
                         mPath9Height = minLineH * phaseX;
-                    }else if (mPath9Height > maxLineH * phaseX) {
+                    } else if (mPath9Height > maxLineH * phaseX) {
                         mPath9Height = maxLineH * phaseX;
                     }
 
@@ -236,7 +234,7 @@ public class FunnelView extends View implements ValueAnimator.AnimatorUpdateList
                     mPath10Height = mTotalHeight * scale * phaseX;
                     if (mPath10Height < minLineH * phaseX) {
                         mPath10Height = minLineH * phaseX;
-                    }else if (mPath10Height > maxLineH * phaseX) {
+                    } else if (mPath10Height > maxLineH * phaseX) {
                         mPath10Height = maxLineH * phaseX;
                     }
 
@@ -317,7 +315,6 @@ public class FunnelView extends View implements ValueAnimator.AnimatorUpdateList
         mPaint10.setAntiAlias(true);
 
 
-
         mPaintLine.setColor(Color.parseColor("#A8ADB2"));
 //        mPaintLine.setColor(Color.parseColor("#A8ADB2"));
         mPaintLine.setStyle(Paint.Style.FILL);
@@ -331,20 +328,20 @@ public class FunnelView extends View implements ValueAnimator.AnimatorUpdateList
 
     private void draw1(Canvas canvas) {
         mLastX = startOffsetX;
-        mLastY = startOffsetY ;
-        mLastWidth=maxWidth-startOffsetX;
+        mLastY = startOffsetY;
+        mLastWidth = maxWidth - startOffsetX;
 
         mPath1 = new Path();
         mPath1.moveTo(mLastX, startOffsetY);
-        mPath1.lineTo(mLastX+mLastWidth , startOffsetY);
-        mPath1.lineTo(mLastX+mLastWidth-mPath1AngleWidth, mLastY+ mPath1Height);
-        mPath1.lineTo(mLastX + mPath1AngleWidth, mLastY+ mPath1Height);
+        mPath1.lineTo(mLastX + mLastWidth, startOffsetY);
+        mPath1.lineTo(mLastX + mLastWidth - mPath1AngleWidth, mLastY + mPath1Height);
+        mPath1.lineTo(mLastX + mPath1AngleWidth, mLastY + mPath1Height);
 
         mPath1.close();
         canvas.drawPath(mPath1, mPaint1);
-        mLastWidth=mLastWidth-2*mPath1AngleWidth;
-        mLastX=mLastX+mPath1AngleWidth;
-        mLastY=mLastY+mPath1Height  ;
+        mLastWidth = mLastWidth - 2 * mPath1AngleWidth;
+        mLastX = mLastX + mPath1AngleWidth;
+        mLastY = mLastY + mPath1Height;
 
     }
 
@@ -353,14 +350,14 @@ public class FunnelView extends View implements ValueAnimator.AnimatorUpdateList
 
         mPath2 = new Path();
 
-        mPath2.moveTo(mLastX,  mLastY);
-        mPath2.lineTo(mLastX+mLastWidth, mLastY);
-        mPath2.lineTo(mLastX +mLastWidth- mPath2AngleWidth, mLastY + mPath2Height);
-        mPath2.lineTo(mLastX+mPath2AngleWidth, mLastY + mPath2Height);
+        mPath2.moveTo(mLastX, mLastY);
+        mPath2.lineTo(mLastX + mLastWidth, mLastY);
+        mPath2.lineTo(mLastX + mLastWidth - mPath2AngleWidth, mLastY + mPath2Height);
+        mPath2.lineTo(mLastX + mPath2AngleWidth, mLastY + mPath2Height);
         mPath2.close();
         canvas.drawPath(mPath2, mPaint2);
 
-        mLastWidth = mLastWidth - mPath2AngleWidth  - mPath2AngleWidth;
+        mLastWidth = mLastWidth - mPath2AngleWidth - mPath2AngleWidth;
         mLastX = mLastX + mPath2AngleWidth;
         mLastY = mLastY + mPath2Height;
     }
@@ -370,7 +367,7 @@ public class FunnelView extends View implements ValueAnimator.AnimatorUpdateList
 
         mPath3 = new Path();
 
-        mPath3.moveTo(mLastX,  mLastY);
+        mPath3.moveTo(mLastX, mLastY);
         mPath3.lineTo(mLastX + mLastWidth, mLastY);
         mPath3.lineTo(mLastX + mLastWidth - mPath3AngleWidth, mLastY + mPath3Height);
         mPath3.lineTo(mLastX + mPath3AngleWidth, mLastY + mPath3Height);
@@ -380,7 +377,7 @@ public class FunnelView extends View implements ValueAnimator.AnimatorUpdateList
         mLastWidth = mLastWidth - mPath3AngleWidth - mPath3AngleWidth;
         mLastX = mLastX + mPath3AngleWidth;
         mLastY = mLastY + mPath3Height;
-        mPath3LineStartX = mLastX + mLastWidth +  mPath3AngleWidth / 2;
+        mPath3LineStartX = mLastX + mLastWidth + mPath3AngleWidth / 2;
         mPath3LineStartY = mLastY - mPath3Height / 2;
     }
 
@@ -388,7 +385,7 @@ public class FunnelView extends View implements ValueAnimator.AnimatorUpdateList
 
         mPath4 = new Path();
 
-        mPath4.moveTo(mLastX,  mLastY);
+        mPath4.moveTo(mLastX, mLastY);
         mPath4.lineTo(mLastX + mLastWidth, mLastY);
         mPath4.lineTo(mLastX + mLastWidth - mPath4AngleWidth, mLastY + mPath4Height);
         mPath4.lineTo(mLastX + mPath4AngleWidth, mLastY + mPath4Height);
@@ -398,17 +395,17 @@ public class FunnelView extends View implements ValueAnimator.AnimatorUpdateList
         mLastWidth = mLastWidth - 2 * mPath4AngleWidth;//最新长度
         mLastX = mLastX + mPath4AngleWidth;//第四个点的x坐标
         mLastY = mLastY + mPath4Height;//第四个点的y坐标
-        mPath4LineStartX = mLastX + mLastWidth +  mPath4AngleWidth / 2;
+        mPath4LineStartX = mLastX + mLastWidth + mPath4AngleWidth / 2;
         mPath4LineStartY = mLastY - mPath4Height / 2;
     }
 
     private void draw5(Canvas canvas) {
         mPath5 = new Path();
 
-        mPath5.moveTo(mLastX,  mLastY);
+        mPath5.moveTo(mLastX, mLastY);
         mPath5.lineTo(mLastX + mLastWidth, mLastY);
-        mPath5.lineTo(mLastX +mLastWidth-mPath5AngleWidth, mLastY + mPath5Height);
-        mPath5.lineTo(mLastX+mPath5AngleWidth, mLastY + mPath5Height);
+        mPath5.lineTo(mLastX + mLastWidth - mPath5AngleWidth, mLastY + mPath5Height);
+        mPath5.lineTo(mLastX + mPath5AngleWidth, mLastY + mPath5Height);
         mPath5.close();
         canvas.drawPath(mPath5, mPaint5);
 
@@ -425,13 +422,12 @@ public class FunnelView extends View implements ValueAnimator.AnimatorUpdateList
     }
 
 
-
     private void draw6(Canvas canvas) {
         mPath6 = new Path();
-        mPath6.moveTo(mLastX,  mLastY);
+        mPath6.moveTo(mLastX, mLastY);
         mPath6.lineTo(mLastX + mLastWidth, mLastY);
-        mPath6.lineTo(mLastX +mLastWidth-mPath6AngleWidth, mLastY + mPath6Height);
-        mPath6.lineTo(mLastX+mPath6AngleWidth, mLastY + mPath6Height);
+        mPath6.lineTo(mLastX + mLastWidth - mPath6AngleWidth, mLastY + mPath6Height);
+        mPath6.lineTo(mLastX + mPath6AngleWidth, mLastY + mPath6Height);
         mPath6.close();
         canvas.drawPath(mPath6, mPaint6);
         mLastWidth = mLastWidth - 2 * mPath6AngleWidth;//最新长度
@@ -440,13 +436,12 @@ public class FunnelView extends View implements ValueAnimator.AnimatorUpdateList
     }
 
 
-
     private void draw7(Canvas canvas) {
         mPath7 = new Path();
-        mPath7.moveTo(mLastX,  mLastY);
+        mPath7.moveTo(mLastX, mLastY);
         mPath7.lineTo(mLastX + mLastWidth, mLastY);
-        mPath7.lineTo(mLastX +mLastWidth-mPath7AngleWidth, mLastY + mPath7Height);
-        mPath7.lineTo(mLastX+mPath7AngleWidth, mLastY + mPath7Height);
+        mPath7.lineTo(mLastX + mLastWidth - mPath7AngleWidth, mLastY + mPath7Height);
+        mPath7.lineTo(mLastX + mPath7AngleWidth, mLastY + mPath7Height);
         mPath7.close();
         canvas.drawPath(mPath7, mPaint7);
         mLastWidth = mLastWidth - 2 * mPath7AngleWidth;//最新长度
@@ -457,10 +452,10 @@ public class FunnelView extends View implements ValueAnimator.AnimatorUpdateList
 
     private void draw8(Canvas canvas) {
         mPath8 = new Path();
-        mPath8.moveTo(mLastX,  mLastY);
+        mPath8.moveTo(mLastX, mLastY);
         mPath8.lineTo(mLastX + mLastWidth, mLastY);
-        mPath8.lineTo(mLastX +mLastWidth-mPath8AngleWidth, mLastY + mPath8Height);
-        mPath8.lineTo(mLastX+mPath8AngleWidth, mLastY + mPath8Height);
+        mPath8.lineTo(mLastX + mLastWidth - mPath8AngleWidth, mLastY + mPath8Height);
+        mPath8.lineTo(mLastX + mPath8AngleWidth, mLastY + mPath8Height);
         mPath8.close();
         canvas.drawPath(mPath8, mPaint8);
         mLastWidth = mLastWidth - 2 * mPath8AngleWidth;//最新长度
@@ -469,13 +464,12 @@ public class FunnelView extends View implements ValueAnimator.AnimatorUpdateList
     }
 
 
-
     private void draw9(Canvas canvas) {
         mPath9 = new Path();
-        mPath9.moveTo(mLastX,  mLastY);
+        mPath9.moveTo(mLastX, mLastY);
         mPath9.lineTo(mLastX + mLastWidth, mLastY);
-        mPath9.lineTo(mLastX +mLastWidth-mPath9AngleWidth, mLastY + mPath9Height);
-        mPath9.lineTo(mLastX+mPath9AngleWidth, mLastY + mPath9Height);
+        mPath9.lineTo(mLastX + mLastWidth - mPath9AngleWidth, mLastY + mPath9Height);
+        mPath9.lineTo(mLastX + mPath9AngleWidth, mLastY + mPath9Height);
         mPath9.close();
         canvas.drawPath(mPath9, mPaint9);
         mLastWidth = mLastWidth - 2 * mPath9AngleWidth;//最新长度
@@ -486,10 +480,10 @@ public class FunnelView extends View implements ValueAnimator.AnimatorUpdateList
 
     private void draw10(Canvas canvas) {
         mPath10 = new Path();
-        mPath10.moveTo(mLastX,  mLastY);
+        mPath10.moveTo(mLastX, mLastY);
         mPath10.lineTo(mLastX + mLastWidth, mLastY);
-        mPath10.lineTo(mLastX +mLastWidth-mPath10AngleWidth, mLastY + mPath10Height);
-        mPath10.lineTo(mLastX+mPath10AngleWidth, mLastY + mPath10Height);
+        mPath10.lineTo(mLastX + mLastWidth - mPath10AngleWidth, mLastY + mPath10Height);
+        mPath10.lineTo(mLastX + mPath10AngleWidth, mLastY + mPath10Height);
         mPath10.close();
         canvas.drawPath(mPath10, mPaint10);
         mLastWidth = mLastWidth - 2 * mPath10AngleWidth;//最新长度
@@ -501,34 +495,34 @@ public class FunnelView extends View implements ValueAnimator.AnimatorUpdateList
     protected void onDraw(Canvas canvas) {
         super.onDraw(canvas);
         draw1(canvas);
-       // drawText1(canvas);
+        // drawText1(canvas);
 
 
         draw2(canvas);
-        drawText2(canvas);
+        // drawText2(canvas);
 
         draw3(canvas);
-       // drawLine3(canvas);
-      //  drawText3(canvas);
+        // drawLine3(canvas);
+        //  drawText3(canvas);
 
         draw4(canvas);
-      //  drawLine4(canvas);
-      //  drawText4(canvas);
+        //  drawLine4(canvas);
+        //  drawText4(canvas);
 
         draw5(canvas);
-      //  drawLine5(canvas);
-      //  drawText5(canvas);
+        //  drawLine5(canvas);
+        //  drawText5(canvas);
 
 
         draw6(canvas);
         draw7(canvas);
         draw8(canvas);
         draw9(canvas);
-      //  draw10(canvas);
+        //  draw10(canvas);
 
     }
 
-    public void animateY(){
+    public void animateY() {
         ObjectAnimator xAnimator = ObjectAnimator.ofFloat(this, "phaseX", 0, 1);
         xAnimator.setDuration(2000);
         xAnimator.addUpdateListener(this);
@@ -621,7 +615,7 @@ public class FunnelView extends View implements ValueAnimator.AnimatorUpdateList
         canvas.drawText("呈报方案(10%)", maxWidth + textStartOffsetX, mLastY - mPath3Height / 2 + offY, mPaintText);
     }
 
-    private void drawLine4(Canvas canvas){
+    private void drawLine4(Canvas canvas) {
         canvas.drawLine(mPath4LineStartX + lineStartOffsetX, mPath4LineStartY, maxWidth, mPath4LineStartY, mPaintLine);
     }
 
@@ -636,7 +630,7 @@ public class FunnelView extends View implements ValueAnimator.AnimatorUpdateList
         canvas.drawText("商务谈判(10%)", maxWidth + textStartOffsetX, mLastY - mPath4Height / 2 + offY, mPaintText);
     }
 
-    private void drawLine5(Canvas canvas){
+    private void drawLine5(Canvas canvas) {
         canvas.drawLine(mPath5LineStartX + lineStartOffsetX, mPath5LineStartY, maxWidth, mPath5LineStartY, mPaintLine);
     }
 

+ 4 - 4
WeiChat/src/main/res/drawable/oa_signin_tv_bg.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<shape xmlns:android="http://schemas.android.com/apk/res/android" >
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
 
     <!-- 实心 -->
     <solid android:color="@android:color/white" />
@@ -17,8 +17,8 @@
         android:top="10dp" />
     <!-- 渐变 -->
     <!--<gradient-->
-        <!--android:angle="270"-->
-        <!--android:endColor="#FFFF782"-->
-        <!--android:startColor="#13C7AF" />-->
+    <!--android:angle="270"-->
+    <!--android:endColor="#FFFF782"-->
+    <!--android:startColor="#13C7AF" />-->
 
 </shape> 

+ 12 - 3
WeiChat/src/main/res/drawable/shape_btn_bussine.xml

@@ -1,4 +1,13 @@
 <?xml version="1.0" encoding="utf-8"?>
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-
-</selector>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle">
+    <corners
+        android:topLeftRadius="6dp"
+        android:topRightRadius="6dp"
+        android:bottomRightRadius="6dp"
+        android:bottomLeftRadius="6dp"></corners>
+    <stroke
+        android:width="3dp"
+        android:color="#999999"></stroke>
+    <solid android:color="#fefefe"></solid>
+</shape>

+ 1 - 32
WeiChat/src/main/res/layout/act_statistical_barchart_scale.xml

@@ -71,38 +71,7 @@
                 android:gravity="center"
                 android:text="统计数据展示" />
             <!-- 统计信息表格展示控件 -->
-            <HorizontalScrollView
-                android:id="@+id/layout"
-                android:layout_width="fill_parent"
-                android:layout_height="fill_parent"
-                android:layout_marginBottom="10dp"
-                android:layout_marginLeft="5dp"
-                android:layout_marginRight="5dp"
-                android:visibility="invisible" >
-                <LinearLayout
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_gravity="center"
-                    android:orientation="horizontal" >
-                    <LinearLayout
-                        android:layout_width="fill_parent"
-                        android:layout_height="wrap_content"
-                        android:layout_gravity="center"
-                        android:orientation="vertical" >
-                        <View style="@style/horizontal_layout" />
-                        <View style="@style/horizontal_layout" />
-                        <com.xzjmyk.pm.activity.ui.erp.view.ListViewInScroller
-                            android:id="@+id/lv_grid_dispaly"
-                            android:layout_width="fill_parent"
-                            android:layout_height="wrap_content"
-                            android:layout_gravity="center"
-                            android:cacheColorHint="#00000000"
-                            android:divider="@drawable/scanframeline" />
-                        <View style="@style/horizontal_layout" />
-                    </LinearLayout>
-                    <View style="@style/vertical_layout" />
-                </LinearLayout>
-            </HorizontalScrollView>
+            <include layout="@layout/inculde_grid_view"></include>
             <View
                 android:layout_width="match_parent"
                 android:layout_height="50dp" />

+ 58 - 9
WeiChat/src/main/res/layout/activity_business.xml

@@ -1,10 +1,59 @@
 <?xml version="1.0" encoding="utf-8"?>
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
-    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
-    android:paddingRight="@dimen/activity_horizontal_margin"
-    android:paddingTop="@dimen/activity_vertical_margin"
-    android:paddingBottom="@dimen/activity_vertical_margin"
-    tools:context="com.xzjmyk.pm.activity.ui.erp.activity.crm.BusinessActivity">
-
-</RelativeLayout>
+<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <RelativeLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        tools:context="com.xzjmyk.pm.activity.ui.erp.activity.crm.BusinessActivity">
+
+        <LinearLayout
+            android:id="@+id/ll_funnel"
+            android:layout_width="match_parent"
+            android:layout_height="250dp"
+            android:orientation="vertical">
+
+            <com.xzjmyk.pm.activity.view.FunnelView
+                android:id="@+id/funnelview"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:background="#ffffff" />
+        </LinearLayout>
+
+        <include
+            android:id="@+id/inc_grid"
+            android:layout_below="@+id/ll_funnel"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            layout="@layout/inculde_grid_view"></include>
+
+        <LinearLayout
+            style="@style/LinearLayout_horizontal"
+            android:weightSum="4"
+            android:layout_below="@+id/inc_grid">
+
+            <Button
+                android:id="@+id/bt_create"
+                android:text="创建商机"
+                style="@style/crm_business_btn" />
+
+            <Button
+                android:id="@+id/bt_qiang"
+                android:text="抢商机"
+                style="@style/crm_business_btn" />
+
+            <Button
+                android:id="@+id/bt_manage"
+                android:text="商机分配"
+                style="@style/crm_business_btn" />
+
+            <Button
+                android:id="@+id/bt_go"
+                android:text="商机跟进"
+                style="@style/crm_business_btn" />
+        </LinearLayout>
+    </RelativeLayout>
+</ScrollView>
+

+ 20 - 9
WeiChat/src/main/res/layout/activity_business_qiang_activty.xml

@@ -1,10 +1,21 @@
 <?xml version="1.0" encoding="utf-8"?>
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
-    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
-    android:paddingRight="@dimen/activity_horizontal_margin"
-    android:paddingTop="@dimen/activity_vertical_margin"
-    android:paddingBottom="@dimen/activity_vertical_margin"
-    tools:context="com.xzjmyk.pm.activity.ui.erp.activity.crm.BusinessQiangActivty">
-
-</RelativeLayout>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    tools:context="com.xzjmyk.pm.activity.ui.erp.activity.crm.BusinessDetailActivty">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="40dp"
+        android:orientation="horizontal"
+        android:weightSum="4">
+
+    </LinearLayout>
+
+    <com.handmark.pulltorefresh.library.PullToRefreshListView
+        android:id="@+id/list_business"
+        style="@style/ListViewBasic"></com.handmark.pulltorefresh.library.PullToRefreshListView>
+
+</LinearLayout>

+ 11 - 0
WeiChat/src/main/res/layout/activity_client.xml

@@ -24,6 +24,7 @@
                 android:orientation="vertical">
 
                 <ImageButton
+                    android:id="@+id/ib_business"
                     android:layout_width="50dp"
                     android:layout_height="50dp"
                     android:background="@drawable/shape_crm_round"
@@ -45,6 +46,7 @@
                 android:orientation="vertical">
 
                 <ImageButton
+                    android:id="@+id/ib_customer"
                     android:layout_width="50dp"
                     android:layout_height="50dp"
                     android:background="@drawable/shape_crm_round"
@@ -66,6 +68,7 @@
                 android:orientation="vertical">
 
                 <ImageButton
+                    android:id="@+id/ib_customer_vistor"
                     android:layout_width="50dp"
                     android:layout_height="50dp"
                     android:background="@drawable/shape_crm_round"
@@ -87,6 +90,7 @@
                 android:orientation="vertical">
 
                 <ImageButton
+                    android:id="@+id/ib_waller"
                     android:layout_width="50dp"
                     android:layout_height="50dp"
                     android:background="@drawable/shape_crm_round"
@@ -651,6 +655,13 @@
                     android:layout_weight="1"
                     style="@style/LinearLayout_vertical">
 
+                    <com.github.mikephil.charting.charts.BarChart
+                        android:id="@+id/crm_chart_bar"
+                        android:layout_width="match_parent"
+                        android:layout_height="match_parent"
+
+                        android:layout_marginTop="10dp"
+                        android:layout_marginBottom="10dp" />
                 </LinearLayout>
             </LinearLayout>
         </LinearLayout>

+ 44 - 1
WeiChat/src/main/res/layout/inculde_grid_view.xml

@@ -1,5 +1,48 @@
 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent" android:layout_height="match_parent">
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+    <!-- 统计信息表格展示控件 -->
+    <HorizontalScrollView
+        android:id="@+id/layout"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:layout_margin="5dp"
+        android:fillViewport="true"
+        android:visibility="invisible">
 
+        <LinearLayout
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:orientation="horizontal">
+
+            <LinearLayout
+                android:layout_width="fill_parent"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center"
+                android:orientation="vertical">
+
+                <View style="@style/horizontal_layout" />
+
+                <View style="@style/horizontal_layout" />
+                <!--    android:layout_marginLeft="10dp"-->
+                <!--android:layout_marginBottom="10dp"-->
+                <!--android:layout_marginTop="10dp"-->-->
+
+                <com.xzjmyk.pm.activity.ui.erp.view.ListViewInScroller
+                    android:id="@+id/lv_grid_dispaly"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center"
+
+                    android:cacheColorHint="#00000000"
+                    android:divider="@drawable/scanframeline" />
+
+                <View style="@style/horizontal_layout" />
+            </LinearLayout>
+
+            <View style="@style/vertical_layout" />
+        </LinearLayout>
+    </HorizontalScrollView>
 </LinearLayout>

+ 2 - 9
WeiChat/src/main/res/menu/menu_crm_find.xml

@@ -3,14 +3,7 @@
     xmlns:tools="http://schemas.android.com/tools"
     tools:context="com.xzjmyk.pm.activity.MainActivity">
     <item
-        android:id="@+id/qrcode"
-        android:icon="@drawable/icon_crm_qrcode"
-        android:title="@string/search"
+        android:id="@+id/crm_data_find"
+        android:title="筛选"
         app:showAsAction="ifRoom" />
-    <item
-        android:id="@+id/search"
-        android:icon="@drawable/icon_crm_add"
-        android:title="@string/search"
-        app:showAsAction="ifRoom" />
-
 </menu>

+ 19 - 1
WeiChat/src/main/res/values/styles.xml

@@ -635,8 +635,26 @@
         <item name="android:textSize">15sp</item>
     </style>
 
+    <!--crm business-->
+    <style name="crm_business_btn">
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:layout_weight">1</item>
+        <item name="android:padding">10dp</item>
+        <item name="android:layout_margin">5dp</item>
+
+        <item name="android:background">@drawable/shape_btn_bussine</item>
+    </style>
 
     <!--共有style-->
+    <style name="ListViewBasic">
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:layout_height">match_parent</item>
+        <item name="android:divider">#00000000</item>
+        <item name="android:dividerHeight">0dp</item>
+        <item name="android:listSelector">@android:color/transparent</item>
+    </style>
+
     <style name="LinearLayout_horizontal">
         <item name="android:layout_width">match_parent</item>
         <item name="android:layout_height">wrap_content</item>
@@ -672,7 +690,7 @@
         <item name="android:layout_marginRight">10dp</item>
         <item name="android:background">@color/item_line</item>
     </style>
-
+    <!--竖线-->
     <style name="app_line_v_1dp">
         <item name="android:layout_width">0.5dp</item>
         <item name="android:layout_height">match_parent</item>

+ 1 - 0
pullToRefershLibraryMy/build.gradle

@@ -17,4 +17,5 @@ android {
 }
 
 dependencies {
+    compile project(':MPAndroidChart')
 }

+ 10 - 10
pullToRefershLibraryMy/src/main/java/com/handmark/pulltorefresh/library/PullToRefreshBase.java

@@ -986,7 +986,7 @@ public abstract class PullToRefreshBase<T extends View> extends LinearLayout imp
 	protected final void refreshRefreshableViewSize(int width, int height) {
 		// We need to set the Height of the Refreshable View to the same as
 		// this layout
-		LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) mRefreshableViewWrapper.getLayoutParams();
+		LayoutParams lp = (LayoutParams) mRefreshableViewWrapper.getLayoutParams();
 
 		switch (getPullToRefreshScrollDirection()) {
 			case HORIZONTAL:
@@ -1010,7 +1010,7 @@ public abstract class PullToRefreshBase<T extends View> extends LinearLayout imp
 	 * 
 	 * @param value - New Scroll value
 	 */
-	@TargetApi(Build.VERSION_CODES.HONEYCOMB)
+	@TargetApi(VERSION_CODES.HONEYCOMB)
 	protected final void setHeaderScroll(int value) {
 		if (DEBUG) {
 			Log.d(LOG_TAG, "setHeaderScroll: " + value);
@@ -1089,7 +1089,7 @@ public abstract class PullToRefreshBase<T extends View> extends LinearLayout imp
 	protected void updateUIForMode() {
 		// We need to use the correct LayoutParam values, based on scroll
 		// direction
-		final LinearLayout.LayoutParams lp = getLoadingLayoutLayoutParams();
+		final LayoutParams lp = getLoadingLayoutLayoutParams();
 
 		// Remove Header, and then add Header Loading View again if needed
 		if (this == mHeaderLayout.getParent()) {
@@ -1120,7 +1120,7 @@ public abstract class PullToRefreshBase<T extends View> extends LinearLayout imp
 		mRefreshableViewWrapper.addView(refreshableView, ViewGroup.LayoutParams.MATCH_PARENT,
 				ViewGroup.LayoutParams.MATCH_PARENT);
 
-		addViewInternal(mRefreshableViewWrapper, new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT,
+		addViewInternal(mRefreshableViewWrapper, new LayoutParams(LayoutParams.MATCH_PARENT,
 				LayoutParams.MATCH_PARENT));
 	}
 
@@ -1278,16 +1278,16 @@ public abstract class PullToRefreshBase<T extends View> extends LinearLayout imp
 		}
 	}
 
-	@TargetApi(Build.VERSION_CODES.FROYO)
-	private LinearLayout.LayoutParams getLoadingLayoutLayoutParams() {
+	@TargetApi(VERSION_CODES.FROYO)
+	private LayoutParams getLoadingLayoutLayoutParams() {
 		switch (getPullToRefreshScrollDirection()) {
 			case HORIZONTAL:
-				return new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,
-						LinearLayout.LayoutParams.MATCH_PARENT);
+				return new LayoutParams(LayoutParams.WRAP_CONTENT,
+						LayoutParams.MATCH_PARENT);
 			case VERTICAL:
 			default:
-				return new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
-						LinearLayout.LayoutParams.WRAP_CONTENT);
+				return new LayoutParams(LayoutParams.MATCH_PARENT,
+						LayoutParams.WRAP_CONTENT);
 		}
 	}