Parcourir la source

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

Arison il y a 9 ans
Parent
commit
f13976871b
60 fichiers modifiés avec 717 ajouts et 865 suppressions
  1. 1 1
      WeiChat/build.gradle
  2. 2 1
      WeiChat/src/main/AndroidManifest.xml
  3. 0 2
      WeiChat/src/main/java/com/xzjmyk/pm/activity/MyApplication.java
  4. 0 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/adapter/PublicMessageAdapter.java
  5. 230 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/bean/oa/OABean.java
  6. 1 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/SplashActivity.java
  7. 0 2
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/circle/BusinessCircleActivity.java
  8. 111 418
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/OAActivity.java
  9. 0 5
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/UserSelectActivity.java
  10. 45 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/OutofficeFragment.java
  11. 189 135
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/SigninClickFragment.java
  12. 10 4
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/FormatUtil.java
  13. 15 77
      WeiChat/src/main/java/com/xzjmyk/pm/activity/view/CalendarView.java
  14. BIN
      WeiChat/src/main/res/drawable-hdpi/down.png
  15. BIN
      WeiChat/src/main/res/drawable-hdpi/oa_1.png
  16. BIN
      WeiChat/src/main/res/drawable-hdpi/oa_10.png
  17. BIN
      WeiChat/src/main/res/drawable-hdpi/oa_2.png
  18. BIN
      WeiChat/src/main/res/drawable-hdpi/oa_3.png
  19. BIN
      WeiChat/src/main/res/drawable-hdpi/oa_4.png
  20. BIN
      WeiChat/src/main/res/drawable-hdpi/oa_5.png
  21. BIN
      WeiChat/src/main/res/drawable-hdpi/oa_6.png
  22. BIN
      WeiChat/src/main/res/drawable-hdpi/oa_7.png
  23. BIN
      WeiChat/src/main/res/drawable-hdpi/oa_8.png
  24. BIN
      WeiChat/src/main/res/drawable-hdpi/oa_9.png
  25. BIN
      WeiChat/src/main/res/drawable-hdpi/oa_doit.png
  26. BIN
      WeiChat/src/main/res/drawable-hdpi/oa_signin.png
  27. BIN
      WeiChat/src/main/res/drawable-hdpi/setting.png
  28. BIN
      WeiChat/src/main/res/drawable-hdpi/signin_btn.png
  29. BIN
      WeiChat/src/main/res/drawable-xhdpi/down.png
  30. BIN
      WeiChat/src/main/res/drawable-xhdpi/oa_1.png
  31. BIN
      WeiChat/src/main/res/drawable-xhdpi/oa_10.png
  32. BIN
      WeiChat/src/main/res/drawable-xhdpi/oa_2.png
  33. BIN
      WeiChat/src/main/res/drawable-xhdpi/oa_3.png
  34. BIN
      WeiChat/src/main/res/drawable-xhdpi/oa_4.png
  35. BIN
      WeiChat/src/main/res/drawable-xhdpi/oa_5.png
  36. BIN
      WeiChat/src/main/res/drawable-xhdpi/oa_6.png
  37. BIN
      WeiChat/src/main/res/drawable-xhdpi/oa_7.png
  38. BIN
      WeiChat/src/main/res/drawable-xhdpi/oa_8.png
  39. BIN
      WeiChat/src/main/res/drawable-xhdpi/oa_9.png
  40. BIN
      WeiChat/src/main/res/drawable-xhdpi/oa_doit.png
  41. BIN
      WeiChat/src/main/res/drawable-xhdpi/setting.png
  42. BIN
      WeiChat/src/main/res/drawable-xhdpi/signin_btn.png
  43. BIN
      WeiChat/src/main/res/drawable-xxhdpi/down.png
  44. BIN
      WeiChat/src/main/res/drawable-xxhdpi/oa_1.png
  45. BIN
      WeiChat/src/main/res/drawable-xxhdpi/oa_10.png
  46. BIN
      WeiChat/src/main/res/drawable-xxhdpi/oa_2.png
  47. BIN
      WeiChat/src/main/res/drawable-xxhdpi/oa_3.png
  48. BIN
      WeiChat/src/main/res/drawable-xxhdpi/oa_4.png
  49. BIN
      WeiChat/src/main/res/drawable-xxhdpi/oa_5.png
  50. BIN
      WeiChat/src/main/res/drawable-xxhdpi/oa_6.png
  51. BIN
      WeiChat/src/main/res/drawable-xxhdpi/oa_7.png
  52. BIN
      WeiChat/src/main/res/drawable-xxhdpi/oa_8.png
  53. BIN
      WeiChat/src/main/res/drawable-xxhdpi/oa_9.png
  54. BIN
      WeiChat/src/main/res/drawable-xxhdpi/oa_doit.png
  55. BIN
      WeiChat/src/main/res/drawable-xxhdpi/oa_signin.png
  56. BIN
      WeiChat/src/main/res/drawable-xxhdpi/setting.png
  57. BIN
      WeiChat/src/main/res/drawable-xxhdpi/signin_btn.png
  58. 19 127
      WeiChat/src/main/res/layout/activity_oa.xml
  59. 76 87
      WeiChat/src/main/res/layout/fragment_signin1.xml
  60. 18 5
      WeiChat/src/main/res/layout/oa_mylistview_item.xml

+ 1 - 1
WeiChat/build.gradle

@@ -4,7 +4,7 @@ apply plugin: 'com.getkeepsafe.dexcount'
 android {
     signingConfigs {
         config {
-            storeFile file('C:/Users/Arison/Desktop/applicationsignname[20150409]')
+            storeFile file('D:/config/applicationsignname[20150409]')
             storePassword '13237658359'
             keyAlias 'jie-20150409'
             keyPassword '13237658359'

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

@@ -404,7 +404,8 @@
         <activity android:name=".ui.message.SubscriptionActivity" />
         <activity android:name=".ui.circle.PhoneSelectActivity" />
         <activity android:name=".ui.erp.activity.crm.ClientActivity" />
-        <activity android:name=".ui.erp.activity.oa.SigninActivity" />
+        <activity android:name=".ui.erp.activity.oa.SigninActivity"
+            android:theme="@style/AppTheme.NoActionBar"/>
         <activity android:name=".ui.erp.activity.oa.AddMeetingActivity"
             android:label="新增会议"/>
         <activity

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

@@ -36,11 +36,9 @@ import java.io.File;
 import java.util.List;
 
 public class MyApplication extends Application {
-
     /**
      * @注释:记录Cookie
      */
-
     public String JSESSION_B2B;
     public static Cookie cookie;
     public static Cookie cookieERP;

+ 0 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/adapter/PublicMessageAdapter.java

@@ -484,7 +484,6 @@ public class PublicMessageAdapter extends BaseAdapter implements BusinessCircleA
                 forwardingBuilder.append(message.getFowardText());
             }
         }
-
         if (viewType == VIEW_TYPE_NORMAL_TEXT) {
             viewHolder.content_fl.setVisibility(View.GONE);// 因为有个MarginTop
             // 5dp,所以没内容的时候隐藏,免得中间间隔有点大

+ 230 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/bean/oa/OABean.java

@@ -0,0 +1,230 @@
+package com.xzjmyk.pm.activity.bean.oa;
+
+import android.os.Parcel;
+import android.os.Parcelable;
+
+/**
+ * oa首页对象实体
+ * Created by gongp on 2016/8/17.
+ */
+public class OABean implements Parcelable{
+    //通用属性
+    private int type;//类型  1、任务 2、日程 3、拜访
+    private String startdate;//2016-08-09 02:01:23
+    private String status;//未激活、已启动
+    private String enddate;//2016-08-09 02:01:23
+    //任务日程属性
+    private String taskcode;//2016070004
+    private String description;//测试(类型)
+    private String recorder;//录入人(陈萍)
+    private String name;//名称
+    private String handler;//实行人
+
+    //拜访计划属性
+    private String visitman;//陈萍(拜访员)
+    private String recordman;//陈萍(记录人)
+    private String client;//陈萍(客户)
+    private String remark;//null(备注)
+    private String address;//testaddress(地址)
+    private String visitdate;//2016-07-20 00:00:00(拜访日期)
+    private String department;//业务员
+    private int vp_id;//id
+
+    public OABean() {
+    }
+
+    protected OABean(Parcel in) {
+        type = in.readInt();
+        startdate = in.readString();
+        status = in.readString();
+        enddate = in.readString();
+        taskcode = in.readString();
+        description = in.readString();
+        recorder = in.readString();
+        name = in.readString();
+        handler = in.readString();
+        visitman = in.readString();
+        recordman = in.readString();
+        client = in.readString();
+        remark = in.readString();
+        address = in.readString();
+        visitdate = in.readString();
+        department = in.readString();
+        vp_id = in.readInt();
+    }
+
+    public static final Creator<OABean> CREATOR = new Creator<OABean>() {
+        @Override
+        public OABean createFromParcel(Parcel in) {
+            return new OABean(in);
+        }
+
+        @Override
+        public OABean[] newArray(int size) {
+            return new OABean[size];
+        }
+    };
+
+    @Override
+    public int describeContents() {
+        return 0;
+    }
+
+    @Override
+    public void writeToParcel(Parcel parcel, int i) {
+        parcel.writeInt(type);
+        parcel.writeString(startdate);
+        parcel.writeString(status);
+        parcel.writeString(enddate);
+        parcel.writeString(taskcode);
+        parcel.writeString(description);
+        parcel.writeString(recorder);
+        parcel.writeString(name);
+        parcel.writeString(handler);
+        parcel.writeString(visitman);
+        parcel.writeString(recordman);
+        parcel.writeString(client);
+        parcel.writeString(remark);
+        parcel.writeString(address);
+        parcel.writeString(visitdate);
+        parcel.writeString(department);
+        parcel.writeInt(vp_id);
+    }
+
+
+    public int getType() {
+        return type;
+    }
+
+    public void setType(int type) {
+        this.type = type;
+    }
+
+    public String getStartdate() {
+        return startdate;
+    }
+
+    public void setStartdate(String startdate) {
+        this.startdate = startdate;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    public String getEnddate() {
+        return enddate;
+    }
+
+    public void setEnddate(String enddate) {
+        this.enddate = enddate;
+    }
+
+    public String getTaskcode() {
+        return taskcode;
+    }
+
+    public void setTaskcode(String taskcode) {
+        this.taskcode = taskcode;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+
+    public void setDescription(String description) {
+        this.description = description;
+    }
+
+    public String getRecorder() {
+        return recorder;
+    }
+
+    public void setRecorder(String recorder) {
+        this.recorder = recorder;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getHandler() {
+        return handler;
+    }
+
+    public void setHandler(String handler) {
+        this.handler = handler;
+    }
+
+    public String getVisitman() {
+        return visitman;
+    }
+
+    public void setVisitman(String visitman) {
+        this.visitman = visitman;
+    }
+
+    public String getRecordman() {
+        return recordman;
+    }
+
+    public void setRecordman(String recordman) {
+        this.recordman = recordman;
+    }
+
+    public String getClient() {
+        return client;
+    }
+
+    public void setClient(String client) {
+        this.client = client;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public String getAddress() {
+        return address;
+    }
+
+    public void setAddress(String address) {
+        this.address = address;
+    }
+
+    public String getVisitdate() {
+        return visitdate;
+    }
+
+    public void setVisitdate(String visitdate) {
+        this.visitdate = visitdate;
+    }
+
+    public String getDepartment() {
+        return department;
+    }
+
+    public void setDepartment(String department) {
+        this.department = department;
+    }
+
+    public int getVp_id() {
+        return vp_id;
+    }
+
+    public void setVp_id(int vp_id) {
+        this.vp_id = vp_id;
+    }
+}

+ 1 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/SplashActivity.java

@@ -5,6 +5,7 @@ import android.content.Intent;
 import android.os.Bundle;
 import android.os.Handler;
 import android.text.TextUtils;
+import android.util.Log;
 import android.view.View;
 import android.view.animation.Animation;
 import android.view.animation.AnimationUtils;

+ 0 - 2
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/circle/BusinessCircleActivity.java

@@ -467,9 +467,7 @@ public class BusinessCircleActivity extends BaseActivity implements showCEView {
                 if (result != null && result.getData() != null && result.getData().size() > 0) {
                     mMessages.clear();
                     mMessages.addAll(result.getData());
-
                     mAdapter.notifyDataSetInvalidated();
-
                 }
                 requestData(true);
             }

+ 111 - 418
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/OAActivity.java

@@ -1,9 +1,7 @@
 package com.xzjmyk.pm.activity.ui.erp.activity.oa;
 
-import android.annotation.TargetApi;
 import android.content.DialogInterface;
 import android.content.Intent;
-import android.os.Build;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
@@ -13,19 +11,20 @@ import android.view.Menu;
 import android.view.MenuItem;
 import android.view.View;
 import android.view.ViewGroup;
-import android.widget.AdapterView;
-import android.widget.ArrayAdapter;
 import android.widget.BaseAdapter;
+import android.widget.ImageView;
 import android.widget.LinearLayout;
-import android.widget.PopupMenu;
 import android.widget.ScrollView;
-import android.widget.Spinner;
 import android.widget.TextView;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.lidroid.xutils.ViewUtils;
 import com.lidroid.xutils.view.annotation.ViewInject;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.bean.oa.MeetUserEntity;
+import com.xzjmyk.pm.activity.bean.oa.OABean;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.ErpMenActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.crm.TaskAddActivity;
@@ -33,31 +32,19 @@ import com.xzjmyk.pm.activity.ui.erp.activity.crm.VisitReportAddActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.crm.VisitReportPlanActivity;
 import com.xzjmyk.pm.activity.ui.erp.net.ViewUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
-import com.xzjmyk.pm.activity.util.JsonUtils;
 import com.xzjmyk.pm.activity.util.TimeUtils;
 import com.xzjmyk.pm.activity.util.ToastUtil;
 import com.xzjmyk.pm.activity.view.CalendarView;
 import com.xzjmyk.pm.activity.view.MyListView;
 
-import org.json.JSONException;
-import org.json.JSONObject;
-
-import java.util.Calendar;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.HashMap;
-import java.util.HashSet;
 import java.util.LinkedHashMap;
-import java.util.List;
 import java.util.Map;
-import java.util.Set;
-
-public class OAActivity extends BaseActivity implements View.OnClickListener, AdapterView.OnItemSelectedListener {
-    private static final int whatVisit = 0x10,//拜访报告接口
-            whatTask = 0x11,    //任务接口
-            whatSchedule = 0x12,//日程接口
-            whatTaskNum = 0x13;//获取选中日期完成任务情况接口
-    private static String[] stateItems = {"确认中", "进行中", "已完成"};
-    private static String[] typeItems = {"类型", "任务", "日程", "拜访"};
+
+public class OAActivity extends BaseActivity implements View.OnClickListener {
+    private final int WHAT_LOAD = 0x11;
     private static String baseUrl;
     @ViewInject(R.id.oa_rl_choose)
     private LinearLayout oa_rl_choose;
@@ -67,10 +54,6 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Ad
     private CalendarView picker;
     @ViewInject(R.id.oa_listview)
     private MyListView listview;
-    @ViewInject(R.id.state)
-    private Spinner state;
-    @ViewInject(R.id.type)
-    private Spinner type;
     @ViewInject(R.id.all_task_num)
     private TextView all_task_num;  //所有任务个数
     @ViewInject(R.id.ok_task_num)
@@ -83,112 +66,43 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Ad
     private TextView date_tv;  //当前月份
     @ViewInject(R.id.my_client_log)
     private TextView my_client_log;  //我的下属签到日志
-    @ViewInject(R.id.my_log)
-    private TextView my_log;  //我的工作日志
     @ViewInject(R.id.my_client_log_tag)
     private View my_client_log_tag;//我的下属工作日志标识
     @ViewInject(R.id.my_log_tag)
     private View my_log_tag;//我的工作日志标识
-    private int typeWhat = -1;
-    private Set<Integer> set;
-    private String date;
-    private List<Map<String, Object>> taskList;//任务列表
-    private List<Map<String, Object>> visitList;//拜访列表
-    private List<Map<String, Object>> scheduleList;//日程列表
-    private MyListViewAdapter adapter;   //
 
+    private MyListViewAdapter adapter;
+    private ArrayList<OABean> beans;
     private Handler handler = new Handler() {
         @Override
         public void handleMessage(Message msg) {
             progressDialog.dismiss();
             String message = (String) msg.getData().get("result");
             switch (msg.what) {
-                case whatVisit:
-                    try {
-                        JSONObject json = new JSONObject(message);
-                        if (json.isNull("success") || !json.getBoolean("success")) {
-                            ToastUtil.showToast(ct, "数据返回错误");
-                            return;
-                        }
-                        visitList = JsonUtils.parseListKeyMaps("visitplan", message);
-                        addTaskDate("vp_status", visitList);
-                        updateUI();
-                    } catch (JSONException e) {
-                        e.printStackTrace();
-                    }
-                    break;
-                case whatTask:
-                    try {
-                        JSONObject json = new JSONObject(message);
-                        if (json.isNull("success") || !json.getBoolean("success")) {
-                            ToastUtil.showToast(ct, "数据返回错误");
-                            return;
-                        }
-                        taskList = JsonUtils.parseListKeyMaps("taskMsg", message);
-                        addTaskDate("status", taskList);
-                        updateUI();
-                    } catch (JSONException e) {
-                        e.printStackTrace();
-                    }
-                    break;
-                case whatSchedule:
-                    try {
-                        JSONObject json = new JSONObject(message);
-                        if (json.isNull("success") || !json.getBoolean("success")) {
-                            ToastUtil.showToast(ct, "数据返回错误");
-                            return;
-                        }
-                        scheduleList = JsonUtils.parseListKeyMaps("scheduleMsg", message);
-                        addTaskDate("status", scheduleList);
-                        updateUI();
-                    } catch (JSONException e) {
-                        e.printStackTrace();
-                    }
-                    break;
-                case whatTaskNum:
-                    try {
-                        JSONObject json = new JSONObject(message);
-                        if (json.isNull("success") || !json.getBoolean("success")) return;
-                        if (!json.isNull("taskAndScheMsg")) {
-                            JSONObject object = json.getJSONObject("taskAndScheMsg");
-                            int notcomplnum = object.isNull("notcomplnum") ? 0 : object.getInt("notcomplnum");
-                            int completenum = object.isNull("completenum") ? 0 : object.getInt("completenum");
-                            int complrate = object.isNull("complrate") ? 0 : object.getInt("complrate");
-                            int taskandschenum = object.isNull("taskandschenum") ? 0 : object.getInt("taskandschenum");
-                            updateUI(notcomplnum, completenum, complrate, taskandschenum);
-                        }
-                    } catch (JSONException e) {
-                        e.printStackTrace();
-                    }
+                case WHAT_LOAD:
+                    JSONObject jsonObject = JSON.parseObject(message);
+                    if (jsonObject.isEmpty()) return;
+                    JSONArray jsonTask = jsonObject.containsKey("task") ? null : jsonObject.getJSONArray("task");
+                    JSONArray jsonSchedule = jsonObject.containsKey("schedule") ? null : jsonObject.getJSONArray("schedule");
+                    JSONArray jsonVisitPlan = jsonObject.containsKey("visitPlan") ? null : jsonObject.getJSONArray("visitPlan");
+                    if (jsonTask != null && jsonTask.size() > 0)
+                        beans.addAll(JSON.parseArray(jsonTask.toJSONString(), OABean.class));
+                    if (jsonSchedule != null && jsonSchedule.size() > 0)
+                        beans.addAll(JSON.parseArray(jsonSchedule.toJSONString(), OABean.class));
+                    if (jsonVisitPlan != null && jsonVisitPlan.size() > 0)
+                        beans.addAll(JSON.parseArray(jsonVisitPlan.toJSONString(), OABean.class));
+
                     break;
             }
         }
     };
 
-    private void addTaskDate(String status, List<Map<String, Object>> list) {
-        if (set == null)
-            set = new HashSet();
-        for (Map<String, Object> en : list) {
-            if (en.get(status) == null || "null".equals(en.get(status) + "") || "FINISHED".equals(en.get(status).toString().trim())) {
-                if (en.get("enddate") != null && !"null".equals(en.get("enddate"))) {
-                    String timeStr = (String) en.get("enddate");
-                    long time = TimeUtils.f_str_2_long(timeStr);
-                    Calendar c = Calendar.getInstance();
-                    c.setTimeInMillis(time);
-                    set.add(c.get(Calendar.DAY_OF_MONTH));
-                }
-            }
-        }
-        if (set != null && set.size() > 0) {
-            picker.setTaskDay(set);
-        }
-    }
-
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_oa);
         ViewUtils.inject(this);
+        getSupportActionBar().setTitle("OA");
         initView();
     }
 
@@ -206,205 +120,6 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Ad
         return super.onOptionsItemSelected(item);
     }
 
-    private void initView() {
-        getSupportActionBar().setTitle("OA");
-        chaneTAG(false);
-        baseUrl = CommonUtil.getSharedPreferences(this, "erp_baseurl");
-        rootScrollView.requestDisallowInterceptTouchEvent(false);
-        picker.setCalendarData(new Date());
-        picker.setSelectMore(false);
-        adapter = new MyListViewAdapter();
-        listview.setAdapter(adapter);
-        rootScrollView.smoothScrollTo(0, 20);
-        date_tv.setText(TimeUtils.long2str(System.currentTimeMillis(), "yyyy-MM"));
-        bindAdapterForSpinner();
-        setListener();
-        initData();
-        //CRM链入 隐藏菜单
-        Intent intent = getIntent();
-        int type = 0;
-        if (intent != null) {
-            type = intent.getIntExtra("type", 0);//默认不隐藏
-            if (type == 1) {
-                oa_rl_choose.setVisibility(View.GONE);
-            } else {
-                oa_rl_choose.setVisibility(View.VISIBLE);
-            }
-        }
-
-    }
-
-    private void initData() {
-        //先下拉三个列表数据
-        loadNetData(whatTask);
-        loadNetData(whatVisit);
-        loadNetData(whatSchedule);
-    }
-
-    public void loadNetData(String status) {
-        progressDialog.show();
-        String url = baseUrl + "mobile/crm/getVisitPlan.action";
-        String date = TimeUtils.long2str(System.currentTimeMillis(), "yyyyMM");
-        loadNetData(whatTask, url, date, status, 1);
-    }
-
-    //获取网络数据
-    public void loadNetData(int what) {
-        progressDialog.show();
-        //获取网络数据
-        String url = baseUrl + "mobile/crm/getVisitPlan.action";
-        String date = TimeUtils.long2str(System.currentTimeMillis(), "yyyyMM");
-        switch (what) {
-            case whatVisit:
-                url = baseUrl + "mobile/crm/getVisitPlan.action";
-                break;
-            case whatTask:
-                url = baseUrl + "mobile/crm/getTaskMsg.action";
-                break;
-            case whatSchedule:
-                url = baseUrl + "mobile/crm/getScheduleMsg.action";
-                break;
-            case whatTaskNum:
-                url = baseUrl + "mobile/crm/getTaskAndScheduleMsg.action";
-                date = this.date;
-                break;
-        }
-        loadNetData(what, url, date, "1", 1);
-    }
-
-    //获取网络数据
-    public void loadNetData(int what, String url, String date, String status, int pager) {
-        //获取网络数据
-        final Map<String, Object> param = new HashMap<>();
-        param.put("emcode", CommonUtil.getSharedPreferences(this, "erp_username"));
-        param.put("date", date);
-        if (what == whatTask)
-            param.put("status", status);
-        param.put("page", pager);
-        param.put("pageSize", 10);
-        param.put("sessionId", CommonUtil.getSharedPreferences(this, "sessionId"));
-        LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
-        headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(this, "sessionId"));
-        ViewUtil.httpSendRequest(this, url, param, handler, headers, what, null, null, "get");
-    }
-
-    private void updateUI() {
-        if (adapter == null)
-            adapter = new MyListViewAdapter();
-        List<Map<String, Object>> mapList = null;
-        switch (typeWhat) {
-            case whatSchedule:
-                if (scheduleList != null)
-                    mapList = scheduleList;
-                break;
-            case whatTask:
-                if (taskList != null)
-                    mapList = taskList;
-                break;
-            case whatVisit:
-                if (visitList != null)
-                    mapList = visitList;
-                break;
-        }
-        if (mapList != null)
-            adapter.setData(mapList);
-    }
-
-    private void updateUI(int i, int completenum, int complrate, int notcomplnum) {
-        //TODO 更改数据显示
-        all_task_num.setText("我的任务日程:" + i);
-        ok_task_num.setText("已完成:" + completenum);
-        uok_task_num.setText("未完成:" + complrate);
-        ok_scale.setText("完成比例:" + notcomplnum);
-    }
-
-    private void bindAdapterForSpinner() {
-        state.setAdapter(new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, stateItems));
-        type.setAdapter(new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, typeItems));
-        state.setOnItemSelectedListener(this);
-        type.setOnItemSelectedListener(this);
-    }
-
-    //设置控件点击事件
-    private void setListener() {
-        findViewById(R.id.oa_img_people).setOnClickListener(this);
-        findViewById(R.id.ll_signin).setOnClickListener(this);
-        findViewById(R.id.ll_outside).setOnClickListener(this);
-        findViewById(R.id.ll_meeting).setOnClickListener(this);
-        findViewById(R.id.ll_worklog).setOnClickListener(this);
-        findViewById(R.id.ll_subject).setOnClickListener(this);
-        findViewById(R.id.attendance_ll).setOnClickListener(this);//考勤单据
-        findViewById(R.id.borrowing_ll).setOnClickListener(this);
-        findViewById(R.id.repayment_ll).setOnClickListener(this);//还款
-        findViewById(R.id.ll_).setOnClickListener(this);
-        findViewById(R.id.ll_attendance).setOnClickListener(this);
-        findViewById(R.id.my_client_log).setOnClickListener(this);
-        findViewById(R.id.my_log).setOnClickListener(this);
-        findViewById(R.id.date_back_img).setOnClickListener(this);
-        findViewById(R.id.date_next_img).setOnClickListener(this);
-        findViewById(R.id.oa_img_infile).setOnClickListener(this);
-        findViewById(R.id.staff_tv).setOnClickListener(this);
-        findViewById(R.id.oa_img_add).setOnClickListener(this);
-        picker.setOnItemClickListener(new CalendarView.OnItemClickListener() {
-            @Override
-            public void OnItemClick(Date selectedStartDate, Date selectedEndDate, Date downDate) {
-                date = downDate.getYear() + "" + downDate.getMonth() + "" + downDate.getDay();
-                loadNetData(whatTaskNum);
-            }
-        });
-    }
-
-    @Override
-    public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
-        switch (adapterView.getId()) {
-            case R.id.state:
-                String status = "1";
-                switch (i) {
-                    case 0:
-                        status = "UNCONFIRMED";
-                        break;
-                    case 1:
-                        status = "DOING";
-                        break;
-                    case 2:
-                        status = "FINISHED";
-                        break;
-                }
-                loadNetData(status);
-            case R.id.type:
-                switch (i) {
-                    case 0:
-                        state.setVisibility(View.GONE);
-                        break;
-                    case 1:
-                        typeWhat = whatTask;
-                        state.setVisibility(View.VISIBLE);
-                        if (taskList == null) {//如果前一次请求失败
-                            loadNetData(whatTask);
-                        }
-                        updateUI();
-                        break;
-                    case 2:
-                        state.setVisibility(View.GONE);
-                        typeWhat = whatSchedule;
-                        if (scheduleList == null) {
-                            loadNetData(whatSchedule);
-                        }
-                        updateUI();
-                        break;
-                    case 3:
-                        state.setVisibility(View.GONE);
-                        typeWhat = whatVisit;
-                        if (visitList == null) {
-                            loadNetData(whatVisit);
-                        }
-                        updateUI();
-                        break;
-                }
-                break;
-        }
-    }
-
     @Override
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
         if (data == null) return;
@@ -416,28 +131,17 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Ad
         }
     }
 
-    @Override
-    public void onNothingSelected(AdapterView<?> adapterView) {
-    }
-
     @Override
     public void onClick(View view) {
         switch (view.getId()) {
             case R.id.oa_img_infile:  //筛选
                 break;
-            case R.id.date_back_img://日期返回一个月
-                break;
-            case R.id.date_next_img://日期前进一个月
-                break;
             case R.id.ll_signin://打卡签到
                 startActivity(new Intent(activity, SigninActivity.class));
                 break;
             case R.id.ll_outside:  //外勤签到
                 startActivity(new Intent(activity, OutofficeActivity.class));
                 break;
-            case R.id.oa_img_add:  //添加按钮
-                popAdd(view);
-                break;
             case R.id.ll_meeting://会议管理
                 startActivity(new Intent(activity, MeetingActivity.class));
                 break;
@@ -446,26 +150,22 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Ad
                 break;
             case R.id.ll_subject://我的行程
                 //TODO 审批先不做
-                ToastUtil.showToast(activity, "该功能暂未开通");
+                ToastUtil.showToast(activity, "该功能还在内测中");
                 break;
             case R.id.attendance_ll://考勤单据
                 startActivity(new Intent(activity, ErpMenActivity.class));
                 break;
             case R.id.borrowing_ll://借款申请
+                ToastUtil.showToast(activity, "该功能还在内测中");
                 break;
             case R.id.repayment_ll://还款申请
+                ToastUtil.showToast(activity, "该功能还在内测中");
                 break;
             case R.id.ll_://差旅费报销
+                ToastUtil.showToast(activity, "该功能还在内测中");
                 break;
             case R.id.ll_attendance://考勤统计
-                startActivity(new Intent(activity, StatisticsActivity.class));
-                break;
-            case R.id.staff_tv://点击人员
-//                startActivity(new Intent(activity, StatisticsActivity.class));
-                break;
-            case R.id.oa_img_people://点击返回
-                setResult(0x12, null);
-                finish();
+                ToastUtil.showToast(activity, "该功能还在内测中");
                 break;
             case R.id.my_client_log://我的下属工作日志
                 chaneTAG(false);
@@ -480,6 +180,76 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Ad
         }
     }
 
+    private void initView() {
+        beans = new ArrayList<>();
+        loadNetData();
+        chaneTAG(false);
+        baseUrl = CommonUtil.getSharedPreferences(this, "erp_baseurl");
+        rootScrollView.requestDisallowInterceptTouchEvent(false);
+        picker.setCalendarData(new Date());
+        picker.setSelectMore(false);
+        adapter = new MyListViewAdapter();
+        listview.setAdapter(adapter);
+        rootScrollView.smoothScrollTo(0, 20);
+        date_tv.setText(TimeUtils.long2str(System.currentTimeMillis(), "yyyy-MM"));
+        setListener();
+        //CRM链入 隐藏菜单
+        Intent intent = getIntent();
+        int type = 0;
+        if (intent != null) {
+            type = intent.getIntExtra("type", 0);//默认不隐藏
+            if (type == 1) {
+                oa_rl_choose.setVisibility(View.GONE);
+            } else {
+                oa_rl_choose.setVisibility(View.VISIBLE);
+            }
+        }
+    }
+
+    //获取数据
+    public void loadNetData() {
+        String url = CommonUtil.getSharedPreferences(ct, "erp_baseurl") + "mobile/crm/gettaskscheduleandvisitplanmsg.action";
+        //获取网络数据
+        final Map<String, Object> param = new HashMap<>();
+        param.put("emcode", CommonUtil.getSharedPreferences(this, "erp_username"));
+        param.put("date", TimeUtils.ym_long_2_str(System.currentTimeMillis()));
+        LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
+        headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
+        ViewUtil.httpSendRequest(this, url, param, handler, headers, WHAT_LOAD, null, null, "get");
+    }
+
+    //设置控件点击事件
+    private void setListener() {
+        findViewById(R.id.ll_signin).setOnClickListener(this);
+        findViewById(R.id.ll_outside).setOnClickListener(this);
+        findViewById(R.id.ll_meeting).setOnClickListener(this);
+        findViewById(R.id.ll_worklog).setOnClickListener(this);
+        findViewById(R.id.ll_subject).setOnClickListener(this);
+        findViewById(R.id.attendance_ll).setOnClickListener(this);//考勤单据
+        findViewById(R.id.borrowing_ll).setOnClickListener(this);
+        findViewById(R.id.repayment_ll).setOnClickListener(this);//还款
+        findViewById(R.id.ll_).setOnClickListener(this);
+        findViewById(R.id.ll_attendance).setOnClickListener(this);
+        findViewById(R.id.my_client_log).setOnClickListener(this);
+        findViewById(R.id.my_log).setOnClickListener(this);
+        picker.setOnItemClickListener(new CalendarView.OnItemClickListener() {
+            @Override
+            public void OnItemClick(Date selectedStartDate, Date selectedEndDate, Date downDate) {
+
+            }
+        });
+    }
+
+    /**
+     * 获取数据处理
+     *
+     * @param array 获取的json对象数组
+     * @param type  类型,1、任务 2、日程 3、拜访
+     */
+    private void treatedData(JSONArray array, int type) {
+
+    }
+
     /**
      * 点击我和我的下属的工作日志中的标识变化
      *
@@ -496,8 +266,6 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Ad
 
     }
 
-    private PopupMenu poAddMenu;
-
     private void popAdd() {
         AlertDialog.Builder builder = new AlertDialog.Builder(this);
         builder.setTitle("选择");
@@ -529,61 +297,20 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Ad
         builder.show();
     }
 
-    @TargetApi(Build.VERSION_CODES.HONEYCOMB)
-    private void popAdd(View view) {
-        //点击添加按钮
-        if (poAddMenu == null) {
-            poAddMenu = new PopupMenu(this, view);
-            poAddMenu.getMenuInflater().inflate(R.menu.oa_pop_add, poAddMenu.getMenu());
-            poAddMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
-                @Override
-                public boolean onMenuItemClick(MenuItem menuItem) {
-                    Intent intent = null;
-                    switch (menuItem.getItemId()) {
-                        case R.id.add_task:
-                            intent = new Intent(ct, TaskAddActivity.class);
-                            intent.putExtra("type", 0);
-                            break;
-                        case R.id.add_date:
-                            intent = new Intent(ct, TaskAddActivity.class);
-                            intent.putExtra("type", 1);
-                            break;
-                        case R.id.add_visit:
-                            intent = new Intent(ct, VisitReportPlanActivity.class);
-                            break;
-                        case R.id.add_visit_item:
-                            intent = new Intent(ct, VisitReportAddActivity.class);
-                            break;
-                    }
-                    startActivity(intent);
-                    poAddMenu.dismiss();
-                    return false;
-                }
-            });
-        }
-        poAddMenu.show();
-    }
-
-
     class MyListViewAdapter extends BaseAdapter {
-        private List<Map<String, Object>> mapList;
 
         public MyListViewAdapter() {
         }
 
-        public void setData(List<Map<String, Object>> mapList) {
-            this.mapList = mapList;
-            notifyDataSetChanged();
-        }
 
         @Override
         public int getCount() {
-            return mapList == null ? 0 : mapList.size();
+            return beans == null ? 0 : beans.size();
         }
 
         @Override
         public Object getItem(int i) {
-            return mapList.get(i);
+            return beans.get(i);
         }
 
         @Override
@@ -600,70 +327,36 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Ad
                 viewholder.item_name_tv = (TextView) view.findViewById(R.id.item_name_tv);
                 viewholder.item_addr_tv = (TextView) view.findViewById(R.id.item_addr_tv);
                 viewholder.item_object_tv = (TextView) view.findViewById(R.id.item_object_tv);
-                viewholder.item_doit_tv = (TextView) view.findViewById(R.id.item_doit_tv);
+                viewholder.item_remak = (TextView) view.findViewById(R.id.item_remak);
+                viewholder.item_doit_tv = (ImageView) view.findViewById(R.id.item_doit_tv);
                 viewholder.item_status_tv = (TextView) view.findViewById(R.id.item_status_tv);
                 view.setTag(viewholder);
             } else {
                 viewholder = (Viewholder) view.getTag();
             }
-            bindItemData(viewholder, i);
             viewholder.item_doit_tv.setOnClickListener(new View.OnClickListener() {
                 @Override
                 public void onClick(View view) {
                     Intent intent = new Intent(activity, VisitActivity.class);
-                    intent.putExtra("id", (int) mapList.get(i).get("vp_id"));
                     startActivityForResult(intent, 1);
                 }
             });
+            bindData(viewholder, i);
             return view;
         }
 
-        private void bindItemData(Viewholder viewholder, int postin) {
-            //TODO 绑定数据
-            String name = "";
-            String addr = "";
-            String object = "";
-            String status = "";
-            if (typeWhat == whatSchedule) {
-                viewholder.item_doit_tv.setVisibility(View.GONE);
-                name = (String) mapList.get(postin).get("schetitle");
-                addr = "结束时间:" + mapList.get(postin).get("enddate");
-                object = (String) mapList.get(postin).get("handler");
-                if (mapList.get(postin).get("status") == null || "null".equals(mapList.get(postin).get("status") + ""))
-                    status = "未完成";
-                else
-                    status = "" + mapList.get(postin).get("status");
-            } else if (typeWhat == whatTask) {
-                viewholder.item_doit_tv.setVisibility(View.GONE);
-                name = (String) mapList.get(postin).get("taskname");
-                addr = "结束时间:" + mapList.get(postin).get("enddate");
-                object = (String) mapList.get(postin).get("handler");
-                if (mapList.get(postin).get("status") == null || "null".equals(mapList.get(postin).get("status") + ""))
-                    status = "未完成";
-                else
-                    status = "" + mapList.get(postin).get("status");
-            } else {
-                viewholder.item_doit_tv.setVisibility(View.VISIBLE);
-                name = (String) mapList.get(postin).get("visitman");
-                addr = "" + mapList.get(postin).get("address");
-                object = mapList.get(postin).get("depart") + ">" + mapList.get(postin).get("custname");
-                if (mapList.get(postin).get("vp_status") == null || "null".equals(mapList.get(postin).get("vp_status") + ""))
-                    status = "未完成";
-                else
-                    status = "" + mapList.get(postin).get("vp_status");
-            }
-            viewholder.item_name_tv.setText(name);
-            viewholder.item_addr_tv.setText(addr);
-            viewholder.item_object_tv.setText(object);
-            viewholder.item_status_tv.setText(status);
+        private void bindData(Viewholder viewholder, int i) {
+
+
         }
 
         class Viewholder {
             TextView item_name_tv,//名字
                     item_addr_tv,//地址
                     item_object_tv,//对象
-                    item_doit_tv,//去拜访按钮
-                    item_status_tv;//状态
+                    item_status_tv,//状态
+                    item_remak;
+            ImageView item_doit_tv;//去拜访按钮
         }
     }
 

+ 0 - 5
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/UserSelectActivity.java

@@ -4,7 +4,6 @@ import android.content.Intent;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
-import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.Menu;
 import android.view.MenuItem;
@@ -53,7 +52,6 @@ public class UserSelectActivity extends BaseActivity {
         @Override
         public void handleMessage(Message msg) {
             String message = msg.getData().getString("result");
-            Log.i("gongpengming", message);
             progressDialog.dismiss();
             switch (msg.what) {
                 case WHAT_LOAD:
@@ -128,9 +126,6 @@ public class UserSelectActivity extends BaseActivity {
         for (int i = 0; i < adapter.getUsers().size(); i++) {
             if (adapter.getUsers().get(i).isClick()) list.add(adapter.getUsers().get(i));
         }
-        for (MeetUserEntity e : list) {
-            Log.i("gongpengming", e.getName() + e.getEmCode() + e.getImId());
-        }
         Intent intent = new Intent();
         intent.putExtra("data", list);
         setResult(0x11, intent);

+ 45 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/OutofficeFragment.java

@@ -3,6 +3,9 @@ package com.xzjmyk.pm.activity.ui.erp.fragment;
 import android.content.Intent;
 import android.os.AsyncTask;
 import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
+import android.util.Log;
 import android.view.Menu;
 import android.view.MenuInflater;
 import android.view.MenuItem;
@@ -10,6 +13,7 @@ import android.view.View;
 import android.widget.Button;
 import android.widget.TextView;
 
+import com.alibaba.fastjson.JSON;
 import com.baidu.mapapi.map.MapView;
 import com.baidu.mapapi.model.LatLng;
 import com.baidu.mapapi.search.core.PoiInfo;
@@ -24,14 +28,20 @@ import com.xzjmyk.pm.activity.ui.erp.activity.oa.OutSigninOKActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.oa.OutofficeActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.oa.OutofficeSetActivity;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
+import com.xzjmyk.pm.activity.ui.erp.util.ViewUtil;
 import com.xzjmyk.pm.activity.util.BaiduMapUtil;
 import com.xzjmyk.pm.activity.util.TimeUtils;
 import com.xzjmyk.pm.activity.util.ToastUtil;
 
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
 /**
  * Created by gongpm on 2016/7/14.
  */
 public class OutofficeFragment extends EasyFragment implements View.OnClickListener {
+    private static final int WHAT_LOAD = 0x11;
     private LatLng point;//位置
     private static int requestCode = 0x11;
     private int sigNum;//签到次数
@@ -61,6 +71,21 @@ public class OutofficeFragment extends EasyFragment implements View.OnClickListe
     private TextView do_trim;
 
     private OutofficeActivity ct;
+    private Handler handler = new Handler() {
+        @Override
+        public void handleMessage(Message msg) {
+            ct.progressDialog.dismiss();
+            String message = msg.getData().getString("result");
+            Log.i("gongpengming", message);
+            if (msg.what == WHAT_LOAD) {
+                if (JSON.parseObject(message).containsKey("listdata")) {
+                    sigNum = JSON.parseObject(message).getJSONArray("listdata").size();
+                    num_tv.setText(sigNum + "");
+                }
+            }
+
+        }
+    };
 
     @Override
     protected int inflateLayoutId() {
@@ -86,6 +111,7 @@ public class OutofficeFragment extends EasyFragment implements View.OnClickListe
     }
 
     private void initview() {
+        loadLog();
         num_tv.setText("" + sigNum);
         String name = MyApplication.getInstance().mLoginUser.getNickName();
         name_img.setText(name.substring(0, 1));
@@ -107,6 +133,25 @@ public class OutofficeFragment extends EasyFragment implements View.OnClickListe
 
     }
 
+    //获取打卡记录 date:yyyy-MM-dd
+    private void loadLog() {
+        ct.progressDialog.show();
+        //获取网络数据
+        String url = CommonUtil.getSharedPreferences(ct, "erp_baseurl") + "mobile/common/list.action";
+        String emcode = CommonUtil.getSharedPreferences(ct, "erp_username");
+        final Map<String, Object> param = new HashMap<>();
+        param.put("currentMaster", CommonUtil.getSharedPreferences(ct, "erp_master"));
+        param.put("page", 1);
+        param.put("pageSize", 1000);
+        param.put("emcode", emcode);
+        param.put("condition", "mo_mancode='" + emcode + "' and to_char(mo_signtime,'yyyy-MM-dd')='" + TimeUtils.s_long_2_str(System.currentTimeMillis()) + "'");
+        param.put("caller", "Mobile_outsign");
+        param.put("sessionId", CommonUtil.getSharedPreferences(ct, "sessionId"));
+        LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
+        headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
+        ViewUtil.httpSendRequest(ct, url, param, handler, headers, WHAT_LOAD, null, null, "get");
+    }
+
     private AsyncTask<Void, Void, Void> timeTask = new AsyncTask() {
         @Override
         protected Object doInBackground(Object[] objects) {

+ 189 - 135
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/SigninClickFragment.java

@@ -3,7 +3,6 @@ package com.xzjmyk.pm.activity.ui.erp.fragment;
 import android.app.Activity;
 import android.content.DialogInterface;
 import android.content.Intent;
-import android.os.AsyncTask;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
@@ -20,6 +19,7 @@ import android.widget.TextView;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.baidu.mapapi.search.core.PoiInfo;
 import com.lidroid.xutils.ViewUtils;
 import com.lidroid.xutils.view.annotation.ViewInject;
@@ -27,7 +27,6 @@ import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.bean.oa.Signin;
 import com.xzjmyk.pm.activity.bean.oa.SigninBean;
-import com.xzjmyk.pm.activity.db.dao.SigninDao;
 import com.xzjmyk.pm.activity.ui.base.EasyFragment;
 import com.xzjmyk.pm.activity.ui.erp.activity.oa.AlarmaActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.oa.LocationMapActivity;
@@ -36,6 +35,7 @@ import com.xzjmyk.pm.activity.ui.erp.util.CodeUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.FlexJsonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.FormatUtil;
+import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
 import com.xzjmyk.pm.activity.ui.erp.util.ViewUtil;
 import com.xzjmyk.pm.activity.util.BaiduMapUtil;
 import com.xzjmyk.pm.activity.util.TimeUtils;
@@ -43,6 +43,7 @@ import com.xzjmyk.pm.activity.util.ToastUtil;
 import com.xzjmyk.pm.activity.view.MyListView;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.Map;
@@ -59,7 +60,6 @@ public class SigninClickFragment extends EasyFragment implements View.OnClickLis
 
     @ViewInject(R.id.listview)
     private MyListView listview;
-
     @ViewInject(R.id.seting)
     private ImageView seting;
     @ViewInject(R.id.top)
@@ -70,15 +70,12 @@ public class SigninClickFragment extends EasyFragment implements View.OnClickLis
     private ImageView back;
     @ViewInject(R.id.oa_range_addr_rl)
     private LinearLayout oa_range_addr_rl;
-
     @ViewInject(R.id.signin_btn)
-    private LinearLayout signin_btn;
-    @ViewInject(R.id.newtime_tv)
-    private TextView newtime_tv;//时间流动时间
+    private ImageView signin_btn;
     @ViewInject(R.id.office_addr)
     private TextView office_addr;//考勤地点
     @ViewInject(R.id.unoffice_mm)
-    private TextView unoffice_mm;//区里考勤地点
+    private TextView unoffice_mm;//地点微调
     //初始化
     private String sessionId = null;
     private String baseUrl = null;
@@ -96,10 +93,17 @@ public class SigninClickFragment extends EasyFragment implements View.OnClickLis
             ct.progressDialog.dismiss();
             switch (msg.what) {
                 case WHATLOAD://下拉时间
-                    if (JSON.parseObject(message).getBoolean("success")) {//返回正确
-                        signinSeccess(message);
+                    JSONObject jsonObject = JSON.parseObject(message);//返回对象
+                    if (jsonObject.containsKey("success") && jsonObject.getBoolean("success")) {//返回正常
+                        if (jsonObject.containsKey("wd_degree") && jsonObject.getInteger("wd_degree") > 0) {//当该用户有排班
+                            //用户有排班时候
+                            setDataByDegree(jsonObject);
+                        } else {
+                            setDataByNoDegree(jsonObject);
+                        }
                     } else {
-
+                        //如果返回失败
+                        ToastUtil.showToast(ct, "网络连接失败,请稍后再试");
                     }
                     break;
                 case WHATLOG://获取打卡
@@ -108,21 +112,20 @@ public class SigninClickFragment extends EasyFragment implements View.OnClickLis
                 case WHATSIGNIN://签到
                     if (JSON.parseObject(message).getBoolean("success")) {//返回正确
                         ToastUtil.showToast(ct, "签到成功");
-                        setSigninAble(false);
-                        //TODO 将时间保存到数据库中
-                        Signin signin = SigninDao.getInstance(ct).query(code, TimeUtils.s_long_2_str(System.currentTimeMillis()));
-                        if (signin == null) return;
-                        if (signin.getUsigmin() == null) {
-                            signin.setUsigmin(TimeUtils.long2str(System.currentTimeMillis(), "HH:mm"));
-                            Log.i("gongpengming", "signin.getUsigmin() == null");
-                        } else {
-                            Log.i("gongpengming", "signin.setDsigmin() == null");
-                            signin.setDsigmin(TimeUtils.long2str(System.currentTimeMillis(), "HH:mm"));
+                        isPlay = false;
+                        //TODO 将数据提交到界面
+                        if (adapter == null || adapter.getBeans() == null) return;
+                        for (int i = 0; i < adapter.getBeans().size(); i++) {
+                            if (adapter.getBeans().get(i).signin == null) {
+                                adapter.getBeans().get(i).signin = TimeUtils.long2str(System.currentTimeMillis(), "HH:mm");
+                                break;
+                            }
                         }
-                        SigninDao.getInstance(ct).updata(signin);
+                        adapter.notifyDataSetChanged();
                     }
                     break;
                 default:
+                    ToastUtil.showToast(ct, "网络连接失败,请稍后再试");
                     break;
             }
         }
@@ -153,7 +156,6 @@ public class SigninClickFragment extends EasyFragment implements View.OnClickLis
     @Override
     public void onDestroyView() {
         super.onDestroyView();
-        task.cancel(true);
     }
 
     @Override
@@ -162,7 +164,7 @@ public class SigninClickFragment extends EasyFragment implements View.OnClickLis
         if (requestCode == RECODE && resultCode == LocationMapActivity.REQUCODE) {
             PoiInfo poi = data.getParcelableExtra(LocationMapActivity.REQUESTNAME);
             office_addr.setText(poi.address);
-            unoffice_mm.setText(getDistance(poi.location.latitude, poi.location.longitude));
+            unoffice_mm.setText(getDistance(poi.location.latitude, poi.location.longitude) + "  地点微调");
         }
     }
 
@@ -170,21 +172,23 @@ public class SigninClickFragment extends EasyFragment implements View.OnClickLis
         timeList = new String[5];
         for (int i = 0; i < timeList.length; i++)
             timeList[i] = getTitle(System.currentTimeMillis() - (DAY_TIME * i));
-        task.execute();
         title.setText(TimeUtils.day_long_2_str(System.currentTimeMillis()) + "  " + TimeUtils.getWeek(System.currentTimeMillis()));
         adapter = new SigninAdapter();
         listview.setAdapter(adapter);
         //TODO 1.考勤地点获取,并计算距离长度
         double b1 = MyApplication.getInstance().getBdLocationHelper().getLatitude();
         double b2 = MyApplication.getInstance().getBdLocationHelper().getLongitude();
-        unoffice_mm.setText(getDistance(b1, b2));
+//        unoffice_mm.setText(getDistance(b1, b2));
+        //TODO 2、获取网络数据
+        loadNetData(System.currentTimeMillis());//获取打卡班次信息
+
         //TODO 2.获取当天数据库数据
-        Signin dbBean = SigninDao.getInstance(ct).query(code, TimeUtils.s_long_2_str(System.currentTimeMillis()));
-        if (dbBean == null) {//当获取数据库为空(表示当天没有打过卡)
-            loadNetData(System.currentTimeMillis());//获取打卡班次信息
-        } else {//已经签过了可以不获取签到时间
-            loadByDB(dbBean);
-        }
+//        Signin dbBean = SigninDao.getInstance(ct).query(code, TimeUtils.s_long_2_str(System.currentTimeMillis()));
+//        if (dbBean == null) {//当获取数据库为空(表示当天没有打过卡)
+//            loadNetData(System.currentTimeMillis());//获取打卡班次信息
+//        } else {//已经签过了可以不获取签到时间
+//            loadByDB(dbBean);
+//        }
     }
 
 
@@ -200,38 +204,24 @@ public class SigninClickFragment extends EasyFragment implements View.OnClickLis
         back.setOnClickListener(this);
         signin_btn.setOnClickListener(this);
         title.setOnClickListener(this);
-        findViewById(R.id.oa_range_addr_rl).setOnClickListener(this);
+        findViewById(R.id.unoffice_mm).setOnClickListener(this);
     }
 
-    private AsyncTask<Void, String, Void> task = new AsyncTask<Void, String, Void>() {
-        @Override
-        protected Void doInBackground(Void... voids) {
-            try {
-                while (true) {
-                    publishProgress(TimeUtils.long2str(System.currentTimeMillis(), "HH:mm:ss"));
-                    Thread.sleep(1000);
-                }
-            } catch (InterruptedException e) {
-                e.printStackTrace();
-            }
-            return null;
-        }
 
-        @Override
-        protected void onProgressUpdate(String... values) {
-            super.onProgressUpdate(values);
-            if (values != null) {
-                newtime_tv.setText(values[0]);
-            }
-        }
-    };
-
-    private void seccess() {
+    private void seccess(boolean is) {
         if (oa_range_addr_rl.getVisibility() == View.GONE) {
-            oa_range_addr_rl.setVisibility(View.VISIBLE);
+            if (is)
+                oa_range_addr_rl.setVisibility(View.VISIBLE);
+        } else {
+            if (!is)
+                oa_range_addr_rl.setVisibility(View.GONE);
         }
         if (signin_btn.getVisibility() == View.GONE) {
-            signin_btn.setVisibility(View.VISIBLE);
+            if (is)
+                signin_btn.setVisibility(View.VISIBLE);
+        } else {
+            if (!is)
+                signin_btn.setVisibility(View.GONE);
         }
     }
 
@@ -244,29 +234,36 @@ public class SigninClickFragment extends EasyFragment implements View.OnClickLis
             beans = adapter.getBeans();
         logsJson = JSON.parseObject(message).getJSONArray("listdata");//获取签到列表
         if (beans.size() <= 0) {
-            setSigninAble(false);
+
+            isPlay = false;
             return;//签到时间没有数据  无法使用
         }
-        if (beans.size() <= logsJson.size()) setSigninAble(false);//当天签到次数已经达到要求
-        for (int i = 0; i < Math.min(beans.size(), logsJson.size()); i++) {
-            beans.get(i).signin = FormatUtil.getInsance().clearDay(logsJson.getJSONObject(i).getString("cl_time"));
-            beans.get(i).tag = FormatUtil.getInsance().reckonHHMM(beans.get(i).time, logsJson.getJSONObject(i).getString("cl_time"));
-            if (beans.get(i).type == 1 || beans.get(i).type == 0) {//上班
-                beans.get(i).tag = -beans.get(i).tag;
-            }
+        if (beans.size() <= logsJson.size()) isPlay = false;
+        ;//当天签到次数已经达到要求
+        String[] time = new String[logsJson.size()];
+        for (int i = 0; i < logsJson.size(); i++) {
+            time[i] = FormatUtil.getInsance().clearDay(logsJson.getJSONObject(i).getString("cl_time")).trim();
+        }
+        Arrays.sort(time);
+        for (int i = 0; i < Math.min(beans.size(), time.length); i++) {
+            beans.get(i).signin = time[i];
+//            beans.get(i).tag = FormatUtil.getInsance().reckonHHMM(beans.get(i).time, logsJson.getJSONObject(i).getString("cl_time"));
+//            if (beans.get(i).type == 1 || beans.get(i).type == 0) {//上班
+//                beans.get(i).tag = -beans.get(i).tag;
+//            }
         }
         adapter.setBeens(beans);
-        seccess();
+        seccess(true);
         //TODO 保存成功后更新数据库
-        Signin signin = SigninDao.getInstance(ct).query(code, TimeUtils.s_long_2_str(System.currentTimeMillis()));
-        if (signin == null) return;
-        Log.i("gongpengming", "数据库有数据");
-        if (logsJson.size() > 0) {
-            signin.setUsigmin(logsJson.getJSONObject(0).getString("cl_time"));
-            if (logsJson.size() > 1)
-                signin.setDsigmin(logsJson.getJSONObject(1).getString("cl_time"));
-        }
-        SigninDao.getInstance(ct).updata(signin);
+//        Signin signin = SigninDao.getInstance(ct).query(code, TimeUtils.s_long_2_str(System.currentTimeMillis()));
+//        if (signin == null) return;
+//        Log.i("gongpengming", "数据库有数据");
+//        if (logsJson.size() > 0) {
+//            signin.setUsigmin(logsJson.getJSONObject(0).getString("cl_time"));
+//            if (logsJson.size() > 1)
+//                signin.setDsigmin(logsJson.getJSONObject(1).getString("cl_time"));
+//        }
+//        SigninDao.getInstance(ct).updata(signin);
     }
 
     private ArrayList<Bean> getBeanByAdapter() {
@@ -287,10 +284,9 @@ public class SigninClickFragment extends EasyFragment implements View.OnClickLis
             chche.time = dbBean.getUtime();
             if (dbBean.getUsigmin() != null) {
                 chche.signin = dbBean.getUsigmin();
-                chche.tag = FormatUtil.getInsance().reckonHHMM(dbBean.getUtime(), TimeUtils.s_long_2_str(System.currentTimeMillis()) + " " + dbBean.getUsigmin() + ":00");
                 chche.tag = -chche.tag;
             }
-            setSigninAble(true);
+            isPlay = true;
             beans.add(chche);
         }
         if (dbBean.getDtime() != null) {
@@ -299,44 +295,17 @@ public class SigninClickFragment extends EasyFragment implements View.OnClickLis
             chche.time = dbBean.getDtime();
             if (dbBean.getDsigmin() != null) {
                 chche.signin = dbBean.getDsigmin();
-                chche.tag = FormatUtil.getInsance().reckonHHMM(dbBean.getUtime(), TimeUtils.s_long_2_str(System.currentTimeMillis()) + " " + dbBean.getDsigmin() + ":00");
                 chche.tag = -chche.tag;
 
             }
-            setSigninAble(false);
+            isPlay = false;
             beans.add(chche);
         }
         if (beans.size() > 0)
             adapter.setBeens(beans);
         else
             loadNetData(System.currentTimeMillis());
-        seccess();
-    }
-
-    private void signinSeccess(String message) {
-        ArrayList<Bean> beans = getBeanByAdapter();
-        if (isRef)//如果需要刷新
-            beans.clear();
-        chche = new Bean();
-        chche.type = 1;
-        chche.time = JSON.parseObject(message).getString("ondutytime") == null ? "08:30" : JSON.parseObject(message).getString("ondutytime");
-        beans.add(chche);
-        chche = new Bean();
-        chche.type = 2;
-        chche.time = JSON.parseObject(message).getString("offdutytime") == null ? "18:00" : JSON.parseObject(message).getString("offdutytime");
-        beans.add(chche);
-        adapter.setBeens(beans);
-        loadLog(TimeUtils.s_long_2_str(selectTime));//获取打卡时间
-        seccess();
-        //TODO 更新完界面后将数据保存到数据库中,只有当数据库没有的时候才会请求网络
-        String u = JSON.parseObject(message).getString("ondutytime") == null ? "08:30" : JSON.parseObject(message).getString("ondutytime");
-        String d = JSON.parseObject(message).getString("offdutytime") == null ? "18:00" : JSON.parseObject(message).getString("offdutytime");
-        Signin signin = new Signin();
-        signin.setCode(code);
-        signin.setDate(TimeUtils.s_long_2_str(System.currentTimeMillis()));
-        signin.setUtime(u);
-        signin.setDtime(d);
-        SigninDao.getInstance(ct).insert(signin);
+        seccess(true);
     }
 
     //当位置信息长度超过8个字符,就会报错
@@ -352,16 +321,6 @@ public class SigninClickFragment extends EasyFragment implements View.OnClickLis
         return locationStr;
     }
 
-    //设置是否还能签到
-    private void setSigninAble(boolean b) {
-        isPlay = b;
-        if (b) {
-            signin_btn.setBackgroundResource(R.drawable.button_round_shape);
-        } else {
-            signin_btn.setBackgroundResource(R.drawable.button_signin);
-        }
-    }
-
     //签到
     private void doSignin(String code) {
         String url = "mobile/saveCardLog.action";
@@ -450,20 +409,33 @@ public class SigninClickFragment extends EasyFragment implements View.OnClickLis
                 ct.finish();
                 break;
             case R.id.signin_btn:
-                if (isPlay)
-                    CodeUtil.getInstance().getCode(ct, "CardLog", new CodeUtil.OnCodeLinstener() {
-                        @Override
-                        public void callBack(String code) {
-                            doSignin(code);
+                if (isPlay) {
+                    if ((adapter != null && adapter.getBeans() != null && adapter.getBeans().size() > 0)) {
+                        if (adapter.getBeans().get(adapter.getBeans().size() - 1).signin != null && adapter.getBeans().get(adapter.getBeans().size() - 1).signin.length() > 0) {
+                            ToastUtil.showToast(ct, "您为满足签到条件,请稍后再试");
+                        } else {
+                            CodeUtil.getInstance().getCode(ct, "CardLog", new CodeUtil.OnCodeLinstener() {
+                                @Override
+                                public void callBack(String code) {
+                                    doSignin(code);
+                                }
+                            });
                         }
-                    });
-                else
+                    } else {
+                        CodeUtil.getInstance().getCode(ct, "CardLog", new CodeUtil.OnCodeLinstener() {
+                            @Override
+                            public void callBack(String code) {
+                                doSignin(code);
+                            }
+                        });
+                    }
+                } else
                     ToastUtil.showToast(ct, "您为满足签到条件,请稍后再试");
                 break;
             case R.id.title:
                 showPopMenu();
                 break;
-            case R.id.oa_range_addr_rl:
+            case R.id.unoffice_mm:
                 intent = new Intent(ct, LocationMapActivity.class);
                 startActivityForResult(intent, RECODE);
                 break;
@@ -491,6 +463,84 @@ public class SigninClickFragment extends EasyFragment implements View.OnClickLis
         builder.show();
     }
 
+    private void endLoadData(ArrayList<Bean> beans) {
+        if (adapter == null) {//容错
+            adapter = new SigninAdapter(beans);
+            listview.setAdapter(adapter);
+        } else {
+            adapter.setBeens(beans);
+        }
+        loadLog(TimeUtils.s_long_2_str(selectTime));//获取打卡时间
+        seccess(true);
+    }
+
+    public void setDataByNoDegree(JSONObject object) {
+        ArrayList<Bean> beans = new ArrayList<>();
+        Bean b = null;
+        b = new Bean();
+        b.type = 1;
+        b.time = object.containsKey("as_amstarttime") ? object.getString("as_amstarttime") : "--:--";
+        beans.add(b);
+        b = new Bean();
+        b.type = 2;
+        b.time = object.containsKey("as_amendtime") ? object.getString("as_amendtime") : "--:--";
+        beans.add(b);
+        b = new Bean();
+        b.type = 1;
+        b.time = object.containsKey("as_pmstarttime") ? object.getString("as_pmstarttime") : "--:--";
+        beans.add(b);
+        b = new Bean();
+        b.type = 2;
+        b.time = object.containsKey("as_pmendtime") ? object.getString("as_pmendtime") : "--:--";
+        beans.add(b);
+        endLoadData(beans);
+    }
+
+    //处理数据,用户有排班时候
+    public void setDataByDegree(JSONObject object) {
+        int num = object.getInteger("wd_degree");//获取排班数
+        ArrayList<Bean> beans = new ArrayList<>();
+        ArrayList<Bean> chche = new ArrayList<>();
+        Bean b = null;
+        switch (num) {
+            case 3:
+                chche.clear();
+                b = new Bean();
+                b.type = 1;
+                b.time = object.containsKey("wd_ondutythree") ? object.getString("wd_ondutythree") : "--:--";
+                chche.add(b);
+                b = new Bean();
+                b.type = 2;
+                b.time = object.containsKey("wd_offdutythree") ? object.getString("wd_offdutythree") : "--:--";
+                chche.add(b);
+                beans.addAll(0, chche);
+            case 2:
+                chche.clear();
+                b = new Bean();
+                b.type = 1;
+                b.time = object.containsKey("wd_ondutytwo") ? object.getString("wd_ondutytwo") : "--:--";
+                chche.add(b);
+                b = new Bean();
+                b.type = 2;
+                b.time = object.containsKey("wd_offdutytwo") ? object.getString("wd_offdutytwo") : "--:--";
+                chche.add(b);
+                beans.addAll(0, chche);
+            case 1:
+                chche.clear();
+                b = new Bean();
+                b.type = 1;
+                b.time = object.containsKey("wd_ondutyone") ? object.getString("wd_ondutyone") : "--:--";
+                chche.add(b);
+                b = new Bean();
+                b.type = 2;
+                b.time = object.containsKey("wd_offdutyone") ? object.getString("wd_offdutyone") : "--:--";
+                chche.add(b);
+                beans.addAll(0, chche);
+                break;
+        }//添加上班签到时间完成
+        endLoadData(beans);
+    }
+
 
     class SigninAdapter extends BaseAdapter {
         private ArrayList<Bean> beans;
@@ -528,7 +578,6 @@ public class SigninClickFragment extends EasyFragment implements View.OnClickLis
         }
 
         //临时变量
-        Bean bean = null;
 
         @Override
         public View getView(int i, View view, ViewGroup viewGroup) {
@@ -545,11 +594,21 @@ public class SigninClickFragment extends EasyFragment implements View.OnClickLis
             } else {
                 holder = (Holder) view.getTag();
             }
-            bean = beans.get(i);
+            chche = beans.get(i);
             String textTimeTag = "";
             String textSigninTag = "";
+            if (!StringUtils.isEmpty(chche.time) && !StringUtils.isEmpty(chche.signin)) {
+                //如果上班 当tag》0说明正常 反之迟到   如果下班 tag》0 说明早退 反之正常
+                chche.tag = FormatUtil.getInsance().reckonByhm(chche.time, chche.signin);//前面减去后面
+                Log.i("gongpengming", "chche.tag=" + chche.tag);
+                if ((chche.type == 1 && chche.tag > 0) || (chche.type == 2 && chche.tag < 0))
+                    holder.tag.setVisibility(View.GONE);
+                else
+                    holder.tag.setVisibility(View.VISIBLE);
+            } else
+                holder.tag.setVisibility(View.GONE);
             String textTag = "";
-            if (bean.type == 1) {
+            if (chche.type == 1) {
                 textTimeTag = "上班时间";
                 textSigninTag = "上班签到时间";
                 textTag = "迟到";
@@ -560,14 +619,9 @@ public class SigninClickFragment extends EasyFragment implements View.OnClickLis
             }
             holder.time_tag.setText(textTimeTag);
             holder.signin_tag.setText(textSigninTag);
-            holder.time.setText(bean.time);
-            holder.signin.setText(bean.signin);
+            holder.time.setText(chche.time);
+            holder.signin.setText(chche.signin);
             holder.tag.setText(textTag);
-            if (bean.tag < 0) {
-                holder.tag.setVisibility(View.VISIBLE);
-            } else {
-                holder.tag.setVisibility(View.GONE);
-            }
             return view;
         }
 

+ 10 - 4
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/FormatUtil.java

@@ -28,13 +28,19 @@ public class FormatUtil {
         return TimeUtils.long2str(TimeUtils.f_str_2_long(date), "HH:mm");
     }
 
-
-    //比较两个时间相差的毫秒数
-    public long reckonHHMM(String d1, String d2) {
+    //比较两个差
+    public long reckonByhm(String d1, String d2) {
         String t1 = TimeUtils.s_long_2_str(System.currentTimeMillis()) + " " + d1 + ":" + "00";
-        return TimeUtils.f_str_2_long(d2) - TimeUtils.f_str_2_long(t1);
+        String t2 = TimeUtils.s_long_2_str(System.currentTimeMillis()) + " " + d2 + ":" + "00";
+        return TimeUtils.f_str_2_long(t1) - TimeUtils.f_str_2_long(t2);
     }
 
+    //比较两个时间相差的毫秒数
+//    public long reckonHHMM(String d1, String d2) {
+//        String t1 = TimeUtils.s_long_2_str(System.currentTimeMillis()) + " " + d1 + ":" + "00";
+//        return TimeUtils.f_str_2_long(d2) - TimeUtils.f_str_2_long(t1);
+//    }
+
     //提醒相关
     //获取下一次提醒时间
     private String name = "alar";

+ 15 - 77
WeiChat/src/main/java/com/xzjmyk/pm/activity/view/CalendarView.java

@@ -7,7 +7,6 @@ import android.graphics.Paint;
 import android.graphics.Path;
 import android.graphics.Typeface;
 import android.util.AttributeSet;
-import android.util.Log;
 import android.view.MotionEvent;
 import android.view.View;
 
@@ -91,7 +90,6 @@ public class CalendarView extends View implements View.OnTouchListener {
     @Override
     protected void onDraw(Canvas canvas) {
         // 画框
-//        canvas.drawPath(surface.boxPath, surface.borderPaint);
         float weekTextY = surface.monthHeight + surface.weekHeight * 3 / 4f;
         for (int i = 0; i < surface.weekText.length; i++) {
             float weekTextX = i
@@ -119,28 +117,17 @@ public class CalendarView extends View implements View.OnTouchListener {
             int todayNumber = calendar.get(Calendar.DAY_OF_MONTH);
             todayIndex = curStartIndex + todayNumber - 1;
         }
-        for (int i = 0; i < 42; i++) {
-            int color = surface.textColor;
-            if (isLastMonth(i)) {//是上个月
-                color = surface.borderColor;
-            } else if (isNextMonth(i)) {//是下个月日期
-                color = surface.borderColor;
-            } else {//是这个月日期
+        //绘制日期
+        for (int i = curStartIndex; i < 42; i++) {
+            if (!isLastMonth(i) && !isNextMonth(i)) {
+                int color = surface.textColor;
+                if (todayIndex != -1 && i == todayIndex) {
+                    color = surface.todayNumberColor;
+                    drawCellText(canvas, i, "今", color);
+                } else {
+                    drawCellText(canvas, i, date[i] + "", color);
+                }
                 drawTask(canvas, i);
-
-//                if (taskDay != null && taskDay.size() > 0) {//如果有的日期又任务
-//                    for (int j : taskDay) {
-//                        if (j == date[i]) {//当前日期为由任务日期
-//
-//                        }
-//                    }
-//                }
-            }
-            if (todayIndex != -1 && i == todayIndex) {
-                color = surface.todayNumberColor;
-                drawCellText(canvas, i, "今", color);
-            } else {
-                drawCellText(canvas, i, date[i] + "", color);
             }
         }
         super.onDraw(canvas);
@@ -150,7 +137,6 @@ public class CalendarView extends View implements View.OnTouchListener {
         calendar.setTime(curDate);
         calendar.set(Calendar.DAY_OF_MONTH, 1);
         int dayInWeek = calendar.get(Calendar.DAY_OF_WEEK);
-        Log.d(TAG, "day in week:" + dayInWeek);
         int monthStart = dayInWeek;
         if (monthStart == 1) {
             monthStart = 8;
@@ -261,56 +247,6 @@ public class CalendarView extends View implements View.OnTouchListener {
         if (downDate != null) {
             drawCellBg(canvas, downIndex, surface.cellDownColor);
         }
-        // selected bg color
-        if (!selectedEndDate.before(showFirstDate)
-                && !selectedStartDate.after(showLastDate)) {
-            int[] section = new int[]{-1, -1};
-            calendar.setTime(curDate);
-            calendar.add(Calendar.MONTH, -1);
-            findSelectedIndex(0, curStartIndex, calendar, section);
-            if (section[1] == -1) {
-                calendar.setTime(curDate);
-                findSelectedIndex(curStartIndex, curEndIndex, calendar, section);
-            }
-            if (section[1] == -1) {
-                calendar.setTime(curDate);
-                calendar.add(Calendar.MONTH, 1);
-                findSelectedIndex(curEndIndex, 42, calendar, section);
-            }
-            if (section[0] == -1) {
-                section[0] = 0;
-            }
-            if (section[1] == -1) {
-                section[1] = 41;
-            }
-            for (int i = section[0]; i <= section[1]; i++) {
-                drawCellBg(canvas, i, surface.cellSelectedColor);
-            }
-        }
-    }
-
-    private void findSelectedIndex(int startIndex, int endIndex,
-                                   Calendar calendar, int[] section) {
-        for (int i = startIndex; i < endIndex; i++) {
-            calendar.set(Calendar.DAY_OF_MONTH, date[i]);
-            Date temp = calendar.getTime();
-            // Log.d(TAG, "temp:" + temp.toLocaleString());
-            if (temp.compareTo(selectedStartDate) == 0) {
-                section[0] = i;
-            }
-            if (temp.compareTo(selectedEndDate) == 0) {
-                section[1] = i;
-                return;
-            }
-        }
-    }
-
-    public Date getSelectedStartDate() {
-        return selectedStartDate;
-    }
-
-    public Date getSelectedEndDate() {
-        return selectedEndDate;
     }
 
     private boolean isLastMonth(int i) {
@@ -382,13 +318,14 @@ public class CalendarView extends View implements View.OnTouchListener {
     }
 
     private void setSelectedDateByCoor(float x, float y) {
-        // cell click down
         if (y > surface.monthHeight + surface.weekHeight) {
             int m = (int) (Math.floor(x / surface.cellWidth) + 1);
             int n = (int) (Math
                     .floor((y - (surface.monthHeight + surface.weekHeight))
                             / Float.valueOf(surface.cellHeight)) + 1);
-            downIndex = (n - 1) * 7 + m - 1;
+            int index = (n - 1) * 7 + m - 1;
+            if (index < curStartIndex || curEndIndex <= index) return;
+            downIndex = index;
             calendar.setTime(curDate);
             if (isLastMonth(downIndex)) {
                 calendar.add(Calendar.MONTH, -1);
@@ -398,6 +335,7 @@ public class CalendarView extends View implements View.OnTouchListener {
             calendar.set(Calendar.DAY_OF_MONTH, date[downIndex]);
             downDate = calendar.getTime();
         }
+        //判断点击的在当月日期里面
         invalidate();
     }
 
@@ -479,7 +417,7 @@ public class CalendarView extends View implements View.OnTouchListener {
             float temp = height / 7f;
             monthHeight = 0;//(float) ((temp + temp * 0.3f) * 0.6);
             weekHeight = (float) ((temp + temp * 0.3f) * 0.7);
-            cellHeight = (height - monthHeight - weekHeight) / 6f;
+            cellHeight = (height - monthHeight - weekHeight) / 5f;
             cellWidth = width / 7f;
             borderPaint = new Paint();
             borderPaint.setColor(borderColor);

BIN
WeiChat/src/main/res/drawable-hdpi/down.png


BIN
WeiChat/src/main/res/drawable-hdpi/oa_1.png


BIN
WeiChat/src/main/res/drawable-hdpi/oa_10.png


BIN
WeiChat/src/main/res/drawable-hdpi/oa_2.png


BIN
WeiChat/src/main/res/drawable-hdpi/oa_3.png


BIN
WeiChat/src/main/res/drawable-hdpi/oa_4.png


BIN
WeiChat/src/main/res/drawable-hdpi/oa_5.png


BIN
WeiChat/src/main/res/drawable-hdpi/oa_6.png


BIN
WeiChat/src/main/res/drawable-hdpi/oa_7.png


BIN
WeiChat/src/main/res/drawable-hdpi/oa_8.png


BIN
WeiChat/src/main/res/drawable-hdpi/oa_9.png


BIN
WeiChat/src/main/res/drawable-hdpi/oa_doit.png


BIN
WeiChat/src/main/res/drawable-hdpi/oa_signin.png


BIN
WeiChat/src/main/res/drawable-hdpi/setting.png


BIN
WeiChat/src/main/res/drawable-hdpi/signin_btn.png


BIN
WeiChat/src/main/res/drawable-xhdpi/down.png


BIN
WeiChat/src/main/res/drawable-xhdpi/oa_1.png


BIN
WeiChat/src/main/res/drawable-xhdpi/oa_10.png


BIN
WeiChat/src/main/res/drawable-xhdpi/oa_2.png


BIN
WeiChat/src/main/res/drawable-xhdpi/oa_3.png


BIN
WeiChat/src/main/res/drawable-xhdpi/oa_4.png


BIN
WeiChat/src/main/res/drawable-xhdpi/oa_5.png


BIN
WeiChat/src/main/res/drawable-xhdpi/oa_6.png


BIN
WeiChat/src/main/res/drawable-xhdpi/oa_7.png


BIN
WeiChat/src/main/res/drawable-xhdpi/oa_8.png


BIN
WeiChat/src/main/res/drawable-xhdpi/oa_9.png


BIN
WeiChat/src/main/res/drawable-xhdpi/oa_doit.png


BIN
WeiChat/src/main/res/drawable-xhdpi/setting.png


BIN
WeiChat/src/main/res/drawable-xhdpi/signin_btn.png


BIN
WeiChat/src/main/res/drawable-xxhdpi/down.png


BIN
WeiChat/src/main/res/drawable-xxhdpi/oa_1.png


BIN
WeiChat/src/main/res/drawable-xxhdpi/oa_10.png


BIN
WeiChat/src/main/res/drawable-xxhdpi/oa_2.png


BIN
WeiChat/src/main/res/drawable-xxhdpi/oa_3.png


BIN
WeiChat/src/main/res/drawable-xxhdpi/oa_4.png


BIN
WeiChat/src/main/res/drawable-xxhdpi/oa_5.png


BIN
WeiChat/src/main/res/drawable-xxhdpi/oa_6.png


BIN
WeiChat/src/main/res/drawable-xxhdpi/oa_7.png


BIN
WeiChat/src/main/res/drawable-xxhdpi/oa_8.png


BIN
WeiChat/src/main/res/drawable-xxhdpi/oa_9.png


BIN
WeiChat/src/main/res/drawable-xxhdpi/oa_doit.png


BIN
WeiChat/src/main/res/drawable-xxhdpi/oa_signin.png


BIN
WeiChat/src/main/res/drawable-xxhdpi/setting.png


BIN
WeiChat/src/main/res/drawable-xxhdpi/signin_btn.png


+ 19 - 127
WeiChat/src/main/res/layout/activity_oa.xml

@@ -48,7 +48,7 @@
 
                     <Button
                         style="@style/oa_btn_style"
-                        android:background="@drawable/text_button_stye" />
+                        android:background="@drawable/oa_1" />
 
                     <TextView
                         android:layout_width="wrap_content"
@@ -70,8 +70,7 @@
 
                     <Button
                         style="@style/oa_btn_style"
-
-                        android:background="@drawable/text_button_stye1" />
+                        android:background="@drawable/oa_2" />
 
                     <TextView
                         android:layout_width="wrap_content"
@@ -92,8 +91,7 @@
 
                     <Button
                         style="@style/oa_btn_style"
-
-                        android:background="@drawable/text_button_stye2" />
+                        android:background="@drawable/oa_3" />
 
                     <TextView
                         android:layout_width="wrap_content"
@@ -115,8 +113,7 @@
 
                     <Button
                         style="@style/oa_btn_style"
-
-                        android:background="@drawable/text_button_stye3" />
+                        android:background="@drawable/oa_4" />
 
                     <TextView
                         android:layout_width="wrap_content"
@@ -127,7 +124,7 @@
                 </LinearLayout>
 
                 <LinearLayout
-                    android:id="@+id/ll_subject"
+                    android:id="@+id/attendance_ll"
                     android:layout_width="0dp"
                     android:layout_height="wrap_content"
                     android:layout_weight="1"
@@ -137,16 +134,17 @@
 
                     <Button
                         style="@style/oa_btn_style"
-                        android:background="@drawable/text_button_stye4" />
+
+                        android:background="@drawable/oa_5" />
 
                     <TextView
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
-
                         android:layout_marginTop="2dp"
-                        android:text="我的行程"
+                        android:text="考勤单据"
                         android:textColor="@color/white" />
                 </LinearLayout>
+
             </LinearLayout>
 
             <View
@@ -159,7 +157,7 @@
                 android:orientation="horizontal">
 
                 <LinearLayout
-                    android:id="@+id/attendance_ll"
+                    android:id="@+id/ll_subject"
                     android:layout_width="0dp"
                     android:layout_height="wrap_content"
                     android:layout_weight="1"
@@ -169,17 +167,18 @@
 
                     <Button
                         style="@style/oa_btn_style"
-
-                        android:background="@drawable/text_button_stye" />
+                        android:background="@drawable/oa_6" />
 
                     <TextView
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
+
                         android:layout_marginTop="2dp"
-                        android:text="考勤单据"
+                        android:text="我的行程"
                         android:textColor="@color/white" />
                 </LinearLayout>
 
+
                 <LinearLayout
                     android:id="@+id/borrowing_ll"
                     android:layout_width="0dp"
@@ -191,7 +190,7 @@
 
                     <Button
                         style="@style/oa_btn_style"
-                        android:background="@drawable/text_button_stye1" />
+                        android:background="@drawable/oa_7" />
 
                     <TextView
                         android:layout_width="wrap_content"
@@ -212,7 +211,7 @@
 
                     <Button
                         style="@style/oa_btn_style"
-                        android:background="@drawable/text_button_stye2" />
+                        android:background="@drawable/oa_8" />
 
                     <TextView
                         android:layout_width="wrap_content"
@@ -233,7 +232,7 @@
 
                     <Button
                         style="@style/oa_btn_style"
-                        android:background="@drawable/text_button_stye3" />
+                        android:background="@drawable/oa_9" />
 
                     <TextView
                         android:layout_width="wrap_content"
@@ -254,7 +253,7 @@
 
                     <Button
                         style="@style/oa_btn_style"
-                        android:background="@drawable/text_button_stye4" />
+                        android:background="@drawable/oa_10" />
 
                     <TextView
                         android:layout_width="wrap_content"
@@ -289,9 +288,9 @@
                 android:layout_width="0dp"
                 android:layout_height="match_parent"
                 android:layout_weight="1"
-                android:textCursorDrawable="@color/yellow_home"
                 android:gravity="center"
                 android:text="我的工作日志"
+                android:textCursorDrawable="@color/yellow_home"
                 android:textSize="20dp" />
         </LinearLayout>
 
@@ -338,25 +337,6 @@
                 android:textColor="@color/text_main"
                 android:textSize="@dimen/text_main" />
 
-            <ImageView
-                android:id="@+id/date_back_img"
-                android:layout_width="wrap_content"
-                android:layout_height="20dp"
-                android:layout_marginRight="20dp"
-                android:layout_toLeftOf="@+id/date_tv"
-                android:clickable="true"
-                android:src="@drawable/oa_data_back"
-                android:visibility="gone" />
-
-            <ImageView
-                android:id="@+id/date_next_img"
-                android:layout_width="wrap_content"
-                android:layout_height="20dp"
-                android:layout_marginLeft="20dp"
-                android:layout_toRightOf="@+id/date_tv"
-                android:clickable="true"
-                android:src="@drawable/oa_data_next"
-                android:visibility="gone" />
         </RelativeLayout>
 
         <View
@@ -364,103 +344,15 @@
             android:layout_height="2px"
             android:background="@color/item_line" />
 
-        <LinearLayout
-            android:id="@+id/oa_function_ll"
-            android:layout_width="match_parent"
-            android:layout_height="40dp"
-            android:orientation="horizontal"
-            android:visibility="gone">
-
-            <ImageView
-                android:id="@+id/oa_img_people"
-                android:layout_width="0dp"
-                android:layout_height="match_parent"
-                android:layout_weight="1"
-                android:clickable="true"
-                android:padding="10dp"
-                android:src="@drawable/oa_head" />
-
-            <View
-                android:layout_width="1px"
-                android:layout_height="match_parent"
-                android:background="@color/item_line" />
-
-            <TextView
-                android:layout_width="0dp"
-                android:layout_height="match_parent"
-                android:layout_weight="1"
-                android:gravity="center"
-                android:text="日程任务"
-                android:textColor="@color/text_black" />
-
-            <View
-                android:layout_width="1px"
-                android:layout_height="match_parent"
-                android:background="@color/item_line" />
-
-            <ImageView
-                android:id="@+id/oa_img_add"
-                android:layout_width="0dp"
-                android:layout_height="match_parent"
-                android:layout_weight="1"
-                android:clickable="true"
-                android:padding="10dp"
-                android:src="@drawable/oa_add" />
-        </LinearLayout>
-
-        <View
-            android:layout_width="match_parent"
-            android:layout_height="1px"
-            android:background="@color/item_line" />
 
         <LinearLayout
             android:id="@+id/oa_choose_ll"
             android:layout_width="match_parent"
             android:layout_height="30dp"
             android:layout_alignParentBottom="true"
-            android:layout_below="@id/oa_function_ll"
             android:orientation="horizontal"
             android:visibility="gone">
 
-            <TextView
-                android:id="@+id/staff_tv"
-                android:layout_width="0dp"
-                android:layout_height="match_parent"
-                android:layout_weight="2"
-                android:clickable="true"
-                android:gravity="center"
-                android:text="人员" />
-
-            <View
-                android:layout_width="1px"
-                android:layout_height="match_parent"
-                android:background="@color/item_line" />
-
-            <Spinner
-                android:id="@+id/state"
-                android:layout_width="0dp"
-                android:layout_height="match_parent"
-                android:layout_weight="2.5"
-                android:spinnerMode="dropdown"
-                android:visibility="gone" />
-
-            <View
-                android:layout_width="1px"
-                android:layout_height="match_parent"
-                android:background="@color/item_line" />
-
-            <Spinner
-                android:id="@+id/type"
-                android:layout_width="0dp"
-                android:layout_height="match_parent"
-                android:layout_weight="2"
-                android:spinnerMode="dropdown" />
-
-            <View
-                android:layout_width="1px"
-                android:layout_height="match_parent"
-                android:background="@color/item_line" />
-
             <View
                 android:layout_width="1px"
                 android:layout_height="match_parent"

+ 76 - 87
WeiChat/src/main/res/layout/fragment_signin1.xml

@@ -1,107 +1,96 @@
 <?xml version="1.0" encoding="utf-8"?>
-<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
+    android:orientation="vertical"
     android:layout_height="match_parent">
-
-    <LinearLayout
+    <RelativeLayout
+        android:id="@+id/top"
         android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:orientation="vertical">
-
-        <RelativeLayout
-            android:id="@+id/top"
-            android:layout_width="match_parent"
-            android:layout_height="?attr/actionBarSize"
-            android:background="@color/antionbarcolor">
+        android:layout_height="?attr/actionBarSize"
+        android:background="@color/antionbarcolor">
 
-            <ImageView
-                android:id="@+id/back"
-                android:layout_width="40dp"
-                android:layout_height="match_parent"
-                android:src="@drawable/back" />
+        <ImageView
+            android:id="@+id/back"
+            android:layout_width="40dp"
+            android:layout_height="match_parent"
+            android:src="@drawable/back" />
 
-            <TextView
-                android:id="@+id/title"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_centerInParent="true"
-                android:drawableRight="@drawable/oa_next"
-                android:textColor="@color/white"
-                android:textSize="@dimen/text_main" />
+        <TextView
+            android:id="@+id/title"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_centerInParent="true"
+            android:drawableRight="@drawable/down"
+            android:textColor="@color/white"
+            android:textSize="@dimen/text_main" />
 
-            <ImageView
-                android:id="@+id/seting"
-                android:layout_width="40dp"
-                android:layout_height="match_parent"
-                android:layout_alignParentRight="true"
-                android:src="@drawable/set_fans" />
-        </RelativeLayout>
+        <ImageView
+            android:id="@+id/seting"
+            android:layout_width="40dp"
+            android:layout_height="match_parent"
+            android:layout_alignParentRight="true"
+            android:padding="5dp"
+            android:src="@drawable/setting" />
+    </RelativeLayout>
+    <ScrollView
+        android:layout_width="match_parent"
+        android:layout_height="match_parent">
 
-        <com.xzjmyk.pm.activity.view.MyListView
-            android:id="@+id/listview"
+        <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="match_parent"
-            android:layout_marginBottom="0dp"
-            android:layout_marginTop="10dp"
-            android:clickable="false"
-            android:divider="@null"
-            android:dividerHeight="0dp"
-            android:focusable="false"
-            android:longClickable="false"
-            android:minHeight="100dp" />
+            android:orientation="vertical">
 
-        <LinearLayout
-            android:id="@+id/signin_btn"
-            android:layout_width="150dp"
-            android:layout_height="150dp"
-            android:layout_below="@+id/oa_range_addr_rl"
-            android:layout_gravity="center"
-            android:background="@drawable/button_round_shape"
-            android:clickable="true"
-            android:gravity="center"
-            android:orientation="vertical"
-            android:padding="20dp"
-            android:visibility="gone">
 
-            <TextView
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:text="打卡"
-                android:textColor="@color/white"
-                android:textSize="30dp" />
 
-            <TextView
-                android:id="@+id/newtime_tv"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
+            <com.xzjmyk.pm.activity.view.MyListView
+                android:id="@+id/listview"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:layout_marginBottom="0dp"
                 android:layout_marginTop="10dp"
-                android:textColor="@color/white"
-                android:textSize="@dimen/text_main" />
-        </LinearLayout>
-
-        <LinearLayout
-            android:id="@+id/oa_range_addr_rl"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_below="@+id/addr_rl"
-            android:layout_marginTop="30dp"
-            android:background="@drawable/oa_signin_tv_bg"
-            android:clickable="true"
-            android:orientation="vertical"
-            android:padding="5dp"
-            android:visibility="gone">
+                android:clickable="false"
+                android:divider="@null"
+                android:dividerHeight="0dp"
+                android:focusable="false"
+                android:longClickable="false"
+                android:minHeight="100dp" />
 
-            <TextView
-                android:id="@+id/office_addr"
-                android:layout_width="match_parent"
+            <ImageView
+                android:id="@+id/signin_btn"
+                android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:text="考勤地点:深圳市优软科技有限公司" />
+                android:layout_below="@+id/oa_range_addr_rl"
+                android:layout_gravity="center"
+                android:clickable="true"
+                android:gravity="center"
+                android:src="@drawable/signin_btn" />
 
-            <TextView
-                android:id="@+id/unoffice_mm"
+            <LinearLayout
+                android:id="@+id/oa_range_addr_rl"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:text="距离考勤地点:" />
+                android:layout_below="@+id/addr_rl"
+                android:layout_marginTop="100dp"
+                android:clickable="true"
+                android:orientation="vertical"
+                android:padding="5dp">
+
+                <TextView
+                    android:id="@+id/office_addr"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:drawableLeft="@drawable/oa_signin"
+                    android:text="考勤地点:深圳市优软科技有限公司" />
+
+                <TextView
+                    android:id="@+id/unoffice_mm"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center"
+                    android:text="地点微调"
+                    android:textColor="@color/cadetblue" />
+            </LinearLayout>
         </LinearLayout>
-    </LinearLayout>
-</ScrollView>
+    </ScrollView>
+</LinearLayout>

+ 18 - 5
WeiChat/src/main/res/layout/oa_mylistview_item.xml

@@ -5,10 +5,21 @@
     android:descendantFocusability="blocksDescendants"
     android:padding="10dp">
 
-     <TextView
+    <TextView
         android:id="@+id/item_name_tv"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
+        android:text="万达广场"
+        android:textColor="@color/text_main"
+        android:textSize="@dimen/text_main" />
+
+    <TextView
+        android:id="@+id/item_remak"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="10dp"
+        android:layout_toRightOf="@id/item_name_tv"
+        android:text="签订合同"
         android:textColor="@color/text_main"
         android:textSize="@dimen/text_main" />
 
@@ -31,6 +42,8 @@
         android:layout_marginTop="3dp"
         android:clickable="true"
         android:drawableLeft="@drawable/oa_signin"
+        android:drawablePadding="5dp"
+        android:text="main"
         android:textColor="@color/text_hine"
         android:textSize="@dimen/text_hine" />
 
@@ -40,19 +53,19 @@
         android:layout_height="wrap_content"
         android:layout_below="@+id/item_addr_tv"
         android:layout_marginTop="5dp"
+        android:text="市场>李四"
         android:textColor="@color/text_hine"
         android:textSize="@dimen/text_hine" />
 
-    <TextView
-        android:clickable="true"
+    <ImageView
         android:id="@+id/item_doit_tv"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_alignParentRight="true"
         android:layout_below="@+id/item_status_tv"
         android:layout_marginTop="10dp"
-        android:background="@drawable/oa_signin_tv_bg"
+        android:clickable="true"
         android:paddingLeft="10dp"
         android:paddingRight="10dp"
-        android:text="去拜访" />
+        android:src="@drawable/oa_doit" />
 </RelativeLayout>