Explorar el Código

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

raomeng hace 8 años
padre
commit
d4dd62e2ef
Se han modificado 57 ficheros con 2560 adiciones y 308 borrados
  1. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/platform/task/TaskActivity.java
  2. 3 3
      WeiChat/version.properties
  3. 2 1
      app_core/common/src/main/AndroidManifest.xml
  4. 1 1
      app_core/common/src/main/java/com/core/app/Constants.java
  5. BIN
      app_core/common/src/main/res/drawable-hdpi/icon_show.png
  6. BIN
      app_core/common/src/main/res/drawable-hdpi/icon_shuaxin.png
  7. BIN
      app_core/common/src/main/res/drawable-hdpi/icon_unshow.png
  8. BIN
      app_core/common/src/main/res/drawable-xhdpi/icon_show.png
  9. BIN
      app_core/common/src/main/res/drawable-xhdpi/icon_shuaxin.png
  10. BIN
      app_core/common/src/main/res/drawable-xhdpi/icon_unshow.png
  11. BIN
      app_core/common/src/main/res/drawable-xxhdpi/icon_del.png
  12. BIN
      app_core/common/src/main/res/drawable-xxhdpi/icon_show.png
  13. BIN
      app_core/common/src/main/res/drawable-xxhdpi/icon_shuaxin.png
  14. BIN
      app_core/common/src/main/res/drawable-xxhdpi/icon_unshow.png
  15. 1 1
      app_modular/appbooking/src/main/java/com/modular/booking/activity/utils/GridSelectActivity.java
  16. 0 56
      app_modular/appbooking/src/main/java/com/modular/booking/model/TestString.java
  17. 4 3
      app_modular/appcontact/src/main/java/com/uas/appcontact/ui/activity/PlatContactAddPeopleActivity.java
  18. 2 0
      app_modular/appme/src/main/AndroidManifest.xml
  19. 272 8
      app_modular/appme/src/main/java/com/uas/appme/settings/activity/CheckWagesActivity.java
  20. 195 0
      app_modular/appme/src/main/java/com/uas/appme/settings/activity/FindWagePWActivity.java
  21. 10 13
      app_modular/appme/src/main/java/com/uas/appme/settings/activity/PersonSettingActivity.java
  22. 167 40
      app_modular/appme/src/main/java/com/uas/appme/settings/activity/WagesDetailsActivity.java
  23. 65 0
      app_modular/appme/src/main/java/com/uas/appme/settings/adapter/WagesDetailsAdapter.java
  24. 68 16
      app_modular/appme/src/main/res/layout/check_wages_activity.xml
  25. 26 0
      app_modular/appme/src/main/res/layout/item_comkey_value.xml
  26. 71 0
      app_modular/appme/src/main/res/layout/set_wage_password.xml
  27. 62 44
      app_modular/appme/src/main/res/layout/sigature_pop.xml
  28. 201 0
      app_modular/appme/src/main/res/layout/wage_forgetps.xml
  29. 23 11
      app_modular/appme/src/main/res/layout/wages_details_activity.xml
  30. 2 2
      app_modular/appmessages/src/main/java/com/modular/appmessages/presenter/ApprovaPresenter.java
  31. 3 4
      app_modular/appmessages/src/main/java/com/modular/appmessages/presenter/MessagePresenter.java
  32. 1 1
      app_modular/apputils/src/main/java/com/modular/apputils/utils/SwitchUtil.java
  33. 157 0
      app_modular/apputils/src/main/java/com/modular/apputils/utils/TestStr.java
  34. 46 0
      app_modular/apputils/src/main/java/com/modular/apputils/widget/SpaceItemDecoration.java
  35. 87 0
      app_modular/apputils/src/main/java/com/modular/apputils/widget/TravelDirectionView.java
  36. 11 0
      app_modular/apputils/src/main/res/drawable/round_bg.xml
  37. 2 0
      app_modular/apputils/src/main/res/values/color.xml
  38. 5 0
      app_modular/apputils/src/main/res/values/dimens.xml
  39. 1 0
      app_modular/apputils/src/main/res/values/ids.xml
  40. 6 1
      app_modular/apputils/src/main/res/values/style.xml
  41. 1 0
      app_modular/appworks/build.gradle
  42. 69 60
      app_modular/appworks/src/main/AndroidManifest.xml
  43. 14 12
      app_modular/appworks/src/main/java/com/uas/appworks/CRM/erp/activity/BusinessDetailActivty.java
  44. 3 1
      app_modular/appworks/src/main/java/com/uas/appworks/OA/erp/activity/ChangeMobileActivity.java
  45. 32 0
      app_modular/appworks/src/main/java/com/uas/appworks/OA/erp/model/KVMode.java
  46. 122 0
      app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/activity/BusinessTravelActivity.java
  47. 2 2
      app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/activity/CharitSearchActivity.java
  48. 1 1
      app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/activity/JoinCharitActivity.java
  49. 243 0
      app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/adapter/BusinessTravelAdapter.java
  50. 1 1
      app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/fragment/ActivityFragment.java
  51. 7 22
      app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/fragment/CharitableListFragment.java
  52. 1 1
      app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/fragment/UserFragment.java
  53. 242 0
      app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/model/BusinessTravel.java
  54. 18 0
      app_modular/appworks/src/main/res/layout/activity_business_travel.xml
  55. 277 0
      app_modular/appworks/src/main/res/layout/item_bus_travel_hotel.xml
  56. 32 0
      app_modular/appworks/src/main/res/layout/item_bus_travel_title.xml
  57. 0 2
      app_modular/appworks/src/main/res/values/strings.xml

+ 1 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/platform/task/TaskActivity.java

@@ -273,7 +273,7 @@ public class TaskActivity extends BaseActivity implements OnClickListener {
         mEmptyLayout.setShowEmptyButton(false);
         mEmptyLayout.setShowErrorButton(false);
         mEmptyLayout.setShowLoadingButton(false);
-        mEmptyLayout.showEmpty();
+//        mEmptyLayout.showEmpty();
         //加载网络数据
         new Thread(new getallprocess_run()).start();
 //        sendResquestForServer("START", 2);

+ 3 - 3
WeiChat/version.properties

@@ -1,5 +1,5 @@
-#Mon Dec 11 16:07:47 CST 2017
-debugName=115
+#Tue Dec 12 16:48:16 CST 2017
+debugName=134
 versionName=618
-debugCode=115
+debugCode=134
 versionCode=157

+ 2 - 1
app_core/common/src/main/AndroidManifest.xml

@@ -19,7 +19,8 @@
         <activity android:name="com.core.widget.view.Activity.SearchLocationActivity"
             android:hardwareAccelerated="true"
             android:windowSoftInputMode="stateUnspecified|adjustNothing" />
-        <activity android:name="com.core.widget.view.Activity.SelectActivity"/>
+        <activity android:name="com.core.widget.view.Activity.SelectActivity">
+        </activity>
         <activity
             android:name="com.core.widget.view.selectcalendar.SelectCalendarActivity"
             android:label="@string/title_activity_select_calendar"/>

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

@@ -24,7 +24,7 @@ public class Constants {
     }
 
     public static String charitBaseUrl() {
-        return "http://lj.ubtob.com/";
+        return "http://lj.ubtob.com/app/";
     }
 
     //通讯录表

BIN
app_core/common/src/main/res/drawable-hdpi/icon_show.png


BIN
app_core/common/src/main/res/drawable-hdpi/icon_shuaxin.png


BIN
app_core/common/src/main/res/drawable-hdpi/icon_unshow.png


BIN
app_core/common/src/main/res/drawable-xhdpi/icon_show.png


BIN
app_core/common/src/main/res/drawable-xhdpi/icon_shuaxin.png


BIN
app_core/common/src/main/res/drawable-xhdpi/icon_unshow.png


BIN
app_core/common/src/main/res/drawable-xxhdpi/icon_del.png


BIN
app_core/common/src/main/res/drawable-xxhdpi/icon_show.png


BIN
app_core/common/src/main/res/drawable-xxhdpi/icon_shuaxin.png


BIN
app_core/common/src/main/res/drawable-xxhdpi/icon_unshow.png


+ 1 - 1
app_modular/appbooking/src/main/java/com/modular/booking/activity/utils/GridSelectActivity.java

@@ -63,7 +63,7 @@ public class GridSelectActivity extends OABaseActivity{
                }
            }
         }
-        LogUtil.d("GridSelectActivity","models:"+JSON.toJSONString(menuModels));
+        LogUtil.prinlnLongMsg("GridSelectActivity","models:"+JSON.toJSONString(menuModels));
         itemAdapter = new ItemRoomsSelectAdapter(mContext, menuModels);
         gvTopic.setAdapter(itemAdapter);
     }

+ 0 - 56
app_modular/appbooking/src/main/java/com/modular/booking/model/TestString.java

@@ -1,56 +0,0 @@
-package com.modular.booking.model;
-
-/**
- * Created by Bitliker on 2017/10/10.
- */
-
-public class TestString {
-	public static final String STORE_SERVICE = "{\n" +
-			"    \"result\": [\n" +
-			"        {\n" +
-			"            \"st_companyid\": \"201\",\n" +
-			"            \"st_companyname\": \"北大医院\",\n" +
-			"            \"st_id\": \"10002\",\n" +
-			"            \"st_name\": \"眼科\",\n" +
-			"            \"st_siid\": \"10001\"\n" +
-			"        },\n" +
-			"        {\n" +
-			"            \"st_companyid\": \"201\",\n" +
-			"            \"st_companyname\": \"北大医院\",\n" +
-			"            \"st_id\": \"10003\",\n" +
-			"            \"st_name\": \"外科\",\n" +
-			"            \"st_siid\": \"10001\"\n" +
-			"        },\n" +
-			"        {\n" +
-			"            \"st_companyid\": \"201\",\n" +
-			"            \"st_companyname\": \"北大医院\",\n" +
-			"            \"st_id\": \"10001\",\n" +
-			"            \"st_name\": \"骨科\",\n" +
-			"            \"st_siid\": \"10001\"\n" +
-			"        },\n" +
-			"        {\n" +
-			"            \"st_companyid\": \"201\",\n" +
-			"            \"st_companyname\": \"北大医院\",\n" +
-			"            \"st_id\": \"10004\",\n" +
-			"            \"st_name\": \"内科\",\n" +
-			"            \"st_siid\": \"10001\"\n" +
-			"        }\n" +
-			"    ]\n" +
-			"}";
-
-	public static final String SERVICE_MAN = "{\n" +
-			"    \"result\": [\n" +
-			"        {\n" +
-			"            \"sm_companyid\": \"201\",\n" +
-			"            \"sm_companyname\": \"北大医院\",\n" +
-			"            \"sm_id\": \"10002\",\n" +
-			"            \"sm_level\": \"医师\",\n" +
-			"            \"sm_stid\": \"10002\",\n" +
-			"            \"sm_stname\": \"眼科\",\n" +
-			"            \"sm_telephone\": \"13910000002\",\n" +
-			"            \"sm_userid\": \"2\",\n" +
-			"            \"sm_username\": \"张四\"\n" +
-			"        }\n" +
-			"    ]\n" +
-			"}";
-}

+ 4 - 3
app_modular/appcontact/src/main/java/com/uas/appcontact/ui/activity/PlatContactAddPeopleActivity.java

@@ -21,6 +21,7 @@ import com.core.base.BaseActivity;
 import com.core.model.SelectBean;
 import com.core.net.http.ViewUtil;
 import com.core.utils.CommonUtil;
+import com.core.widget.view.Activity.SelectActivity;
 import com.uas.appcontact.R;
 
 import java.util.ArrayList;
@@ -150,7 +151,7 @@ public class PlatContactAddPeopleActivity  extends BaseActivity implements View.
             formBeaan.add(selectBean);
         }
 
-        Intent intent = new Intent("com.modular.common.SelectActivity");
+        Intent intent = new Intent(ct, SelectActivity.class);
         intent.putExtra("type", 2);
         intent.putExtra("title", getString(R.string.select_jobs));
         intent.putParcelableArrayListExtra("data", formBeaan);
@@ -165,7 +166,7 @@ public class PlatContactAddPeopleActivity  extends BaseActivity implements View.
             selectBean.setName(mDepartment[i]);
             formBeaan.add(selectBean);
         }
-        Intent intent = new Intent("com.modular.common.SelectActivity");
+        Intent intent = new Intent(ct,SelectActivity.class);
         intent.putExtra("type", 2);
         intent.putExtra("title", getString(R.string.select_department));
         intent.putParcelableArrayListExtra("data", formBeaan);
@@ -208,7 +209,7 @@ public class PlatContactAddPeopleActivity  extends BaseActivity implements View.
     }
 
     private void saveRequest() {
-        if (!CommonUtil.isReleaseVersion()){
+        if (!CommonUtil.isNetWorkConnected(ct)){
             ToastMessage(getString(R.string.networks_out));
             return;
         }

+ 2 - 0
app_modular/appme/src/main/AndroidManifest.xml

@@ -77,5 +77,7 @@
             />
         <activity android:name=".settings.activity.TableSetActivity"/>
         <activity android:name=".settings.activity.TableListActivity"/>
+        <activity android:name=".settings.activity.FindWagePWActivity"
+            android:label="修改查询密码"/>
     </application>
 </manifest>

+ 272 - 8
app_modular/appme/src/main/java/com/uas/appme/settings/activity/CheckWagesActivity.java

@@ -1,17 +1,42 @@
 package com.uas.appme.settings.activity;
 
+import android.app.Activity;
 import android.content.Intent;
 import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
+import android.text.InputType;
+import android.util.DisplayMetrics;
+import android.util.Log;
+import android.view.Gravity;
+import android.view.LayoutInflater;
 import android.view.View;
+import android.view.WindowManager;
 import android.widget.Button;
+import android.widget.EditText;
+import android.widget.ImageView;
+import android.widget.PopupWindow;
 import android.widget.TextView;
+import android.widget.Toast;
 
+import com.alibaba.fastjson.JSON;
 import com.andreabaccega.widget.FormEditText;
+import com.baidu.cyberplayer.utils.G;
+import com.common.LogUtil;
+import com.common.config.BaseConfig;
 import com.common.data.DateFormatUtil;
-import com.common.data.ListUtils;
+import com.common.data.JSONUtil;
 import com.common.data.StringUtil;
+import com.common.system.DisplayUtil;
+import com.core.app.MyApplication;
 import com.core.base.BaseActivity;
+import com.core.utils.CommonUtil;
 import com.core.utils.time.wheel.DatePicker;
+import com.iflytek.cloud.thirdparty.V;
+import com.me.network.app.http.HttpClient;
+import com.me.network.app.http.Method;
+import com.me.network.app.http.rx.ResultListener;
+import com.me.network.app.http.rx.ResultSubscriber;
 import com.uas.appme.R;
 
 import java.util.Calendar;
@@ -31,11 +56,107 @@ public class CheckWagesActivity extends BaseActivity implements View.OnClickList
     private String myearmonth = DateFormatUtil.long2Str(System.currentTimeMillis(), "yyyyMM");//默认当前月
     private String checkYear;
     private String checkMonth;
+    private TextView mTel;
+    private String master;
+    private EditText inputPSEt;
+    private ImageView eye_im;
+    private Boolean canSeePW = false;
+    private String emcode;
+    private TextView seconds_tv;
+    private long SecondT = 59;
+    private boolean isRun = false;
+    private Handler timeHandler = new Handler() {
+        @Override
+        public void handleMessage(Message msg) {
+            super.handleMessage(msg);
+            if (msg.what==1212) {
+                SecondT--;
+                seconds_tv.setText(SecondT+"");
+                if (SecondT==0) {
+                    seconds_tv.setVisibility(View.INVISIBLE);
+                    mWagesCodeBtn.setVisibility(View.VISIBLE);
+                    isRun = false;
+                }
+                Log.i("HttpLogs",SecondT+"");
+            }
+        }
+    };
+
+    /**
+     * 开启倒计时
+     */
+    private void startRun() {
+        new Thread(new Runnable() {
+            @Override
+            public void run() {
+                // TODO Auto-generated method stub
+                while (isRun) {
+                    try {
+                        Thread.sleep(1000); // sleep 1000ms
+                        Message message = Message.obtain();
+                        message.what = 1212;
+                        timeHandler.sendMessage(message);
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                    }
+                }
+            }
+        }).start();
+    }
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         initView();
+        checkIsHavePassword();//查询是设置过查询密码
+    }
+
+    private void checkIsHavePassword() {
+        HttpClient httpClient = new HttpClient.Builder("http://192.168.253.58:8080/ERP/").isDebug(true).build(true);
+        httpClient.Api().send(new HttpClient.Builder()
+                .url("mobile/salary/checkPassword.action")
+                .add("phone",mTel.getText().toString())
+                .add("emcode",emcode)
+                .add("em_uu",CommonUtil.getSharedPreferences(MyApplication.getInstance(),"erp_uu"))
+                .add("master",master)
+                .method(Method.POST)
+                .build(),new ResultSubscriber<>(new ResultListener<Object>() {
+            @Override
+            public void onResponse(Object o) {
+                LogUtil.prinlnLongMsg("checkPassword", o.toString()+"");
+                if (!JSONUtil.validate(o.toString()) || o == null) return;
+                if (o.toString().contains("success") && !JSON.parseObject(o.toString()).getBoolean("success"))
+                    showSetPWW();
+
+            }
+        }));
+    }
+
+    //设置查询密码PP
+    private PopupWindow popupWindow = null;
+    private void showSetPWW() {
+        // 一个自定义的布局,作为显示的内容
+        View contentView = LayoutInflater.from(ct).inflate(
+                R.layout.set_wage_password, null);
+        contentView.findViewById(R.id.cancel_tv).setOnClickListener(this);
+        contentView.findViewById(R.id.sure_btn).setOnClickListener(this);
+        eye_im = (ImageView) contentView.findViewById(R.id.eye_im);
+        eye_im.setOnClickListener(this);
+        inputPSEt = (EditText)contentView.findViewById(R.id.input_ps_et);
+
+        DisplayMetrics dm = getResources().getDisplayMetrics();
+        int w_screen = dm.widthPixels;
+        int h_screen = dm.heightPixels;
+        w_screen = DisplayUtil.dip2px(this, 300);
+        h_screen = DisplayUtil.dip2px(this, 200);
+        popupWindow = new PopupWindow(contentView, w_screen, h_screen, true);
+        popupWindow.setTouchable(true);
+        popupWindow.setOutsideTouchable(false);
+        // 如果不设置PopupWindow的背景,无论是点击外部区域还是Back键都无法dismiss弹框
+        popupWindow.setBackgroundDrawable(getResources().getDrawable(com.uas.appworks.R.drawable.pop_round_bg));
+        // 设置好参数之后再show
+        popupWindow.showAtLocation(contentView, Gravity.CENTER, 0, 0);
+        setbg(0.4f);
     }
 
     private void initView() {
@@ -43,15 +164,22 @@ public class CheckWagesActivity extends BaseActivity implements View.OnClickList
         getSupportActionBar().setTitle("工资条查询");
 
         mWagesDate = (TextView) findViewById(R.id.wages_date);
-        mWagesPhoneEt = (FormEditText) findViewById(R.id.wages_phone_et);
         mWagesPasswordEt = (FormEditText) findViewById(R.id.wages_password_et);
         mWagesCodeEt = (FormEditText) findViewById(R.id.wages_code_et);
         mWagesCodeBtn = (Button) findViewById(R.id.wages_code_btn);
         mCheckBtn = (Button) findViewById(R.id.check_btn);
-
+        mTel = (TextView) findViewById(R.id.wages_phone_tv);
+        findViewById(R.id.forget_password_btn).setOnClickListener(this);
         mWagesDate.setOnClickListener(this);
         mWagesCodeBtn.setOnClickListener(this);
         mCheckBtn.setOnClickListener(this);
+        seconds_tv = (TextView)findViewById(R.id.seconds_tv);
+
+        mTel.setText(CommonUtil.getSharedPreferences(MyApplication.getInstance(),"user_phone"));
+        master = CommonUtil.getSharedPreferences(ct, "erp_master");
+//        emcode = MyApplication.getInstance().getLoginUserId();
+        emcode = "U0747";
+
     }
 
     @Override
@@ -73,16 +201,152 @@ public class CheckWagesActivity extends BaseActivity implements View.OnClickList
                 }
             });
             picker.show();
-        }else if (id == R.id.wages_code_btn){
+        }else if (id == R.id.wages_code_btn){//获取验证码
+            if (!CommonUtil.isNetWorkConnected(ct)){
+                ToastMessage(getString(R.string.common_notlinknet));
+                return;
+            }
+            HttpClient httpClient = new HttpClient.Builder("http://192.168.253.58:8080/ERP/").isDebug(true).build(true);
+            httpClient.Api().send(new HttpClient.Builder()
+                    .url("mobile/salary/verificationCode.action")
+//                    .header("Cookie","JSESSIONID="+CommonUtil.getSharedPreferences(BaseConfig.getContext(), "sessionId"))
+                    .add("phone",mTel.getText().toString())
+                    .method(Method.POST)
+                    .build(),new ResultSubscriber<>(new ResultListener<Object>() {
+                @Override
+                public void onResponse(Object o) {
+                    LogUtil.prinlnLongMsg("verificationCode", o.toString()+"");
+                    if (!JSONUtil.validate(o.toString()) || o == null) return;
+                    if (o.toString().contains("success") && JSON.parseObject(o.toString()).getBoolean("success")) {
+                        Toast.makeText(ct,"短信发送成功,请在一分钟内完成输入查询",Toast.LENGTH_LONG).show();
+                        mWagesCodeBtn.setVisibility(View.INVISIBLE);
+                        seconds_tv.setVisibility(View.VISIBLE);
+                        mWagesCodeEt.setText(JSON.parseObject(o.toString()).getString("vecode")+"");
+                        isRun = true;
+                        startRun();
+                    }
 
+                }
+            }));
         }else if (id == R.id.check_btn){
             if (StringUtil.isEmpty(checkYear) || StringUtil.isEmpty(checkMonth)){
                 ToastMessage("请输入查询日期");
                 return;
-            }else
-                startActivity(new Intent(this,WagesDetailsActivity.class)
-                .putExtra("checkYear",checkYear)
-                .putExtra("checkMonth",checkMonth));
+            }else if (StringUtil.isEmpty(mWagesCodeEt.getText().toString())){
+                ToastMessage("请输入验证码");
+                return;
+            }else if (StringUtil.isEmpty(mWagesPasswordEt.getText().toString())){
+                ToastMessage("请输入查询密码");
+                return;
+            }
+            searchWage();
+        }else if (id == R.id.cancel_tv){
+            popupWindow.dismiss();
+        }else if (id == R.id.sure_btn){
+            if (StringUtil.isEmpty(inputPSEt.getText().toString())){
+                ToastMessage("请输入查询密码");
+                return;
+            }
+            if (inputPSEt.getText().toString().length()<6){
+                ToastMessage("请设置至少6位数查询密码");
+                return;
+            }
+            doSavePW();
+        }else if (id == R.id.forget_password_btn){//忘记密码
+            startActivity(new Intent(ct,FindWagePWActivity.class));
+        }else if (id == R.id.eye_im){
+            if (canSeePW){
+                canSeePW = false;
+                inputPSEt.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
+                eye_im.setImageResource(R.drawable.icon_unshow);
+            }else {
+                canSeePW = true;
+                inputPSEt.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
+                eye_im.setImageResource(R.drawable.icon_show);
+            }
+        }
+    }
+
+    private void doSavePW() {
+        HttpClient httpClient = new HttpClient.Builder("http://192.168.253.58:8080/ERP/").isDebug(true).build(true);
+        httpClient.Api().send(new HttpClient.Builder()
+                .url("mobile/salary/changePassword.action")
+                .add("emcode", emcode)
+                .add("password",inputPSEt.getText().toString())
+                .add("phone",mTel.getText().toString())
+                .add("em_uu",CommonUtil.getSharedPreferences(MyApplication.getInstance(),"erp_uu"))
+                .add("master",master)
+                .method(Method.POST)
+                .header("Cookie","JSESSIONID="+CommonUtil.getSharedPreferences(BaseConfig.getContext(), "sessionId"))
+                .build(),new ResultSubscriber<>(new ResultListener<Object>() {
+            @Override
+            public void onResponse(Object o) {
+                LogUtil.prinlnLongMsg("changePassword", o.toString()+"");
+                if (!JSONUtil.validate(o.toString()) || o == null) return;
+
+                if (o.toString().contains("success") && JSON.parseObject(o.toString()).getBoolean("success")){
+                    Toast.makeText(ct, "设置密码成功", Toast.LENGTH_LONG).show();
+                    popupWindow.dismiss();
+                }
+
+            }
+        }));
+    }
+
+    private void searchWage() {
+        //        HttpClient httpClient = new HttpClient.Builder(Constants.IM_BASE_URL()).isDebug(true).build(true);
+        HttpClient httpClient = new HttpClient.Builder("http://192.168.253.58:8080/ERP/").isDebug(true).build(true);
+        httpClient.Api().send(new HttpClient.Builder()
+                .url("mobile/salary/getEmSalary.action")
+                .add("emcode", emcode)
+                .add("password",mWagesPasswordEt.getText().toString())
+                .add("phone",mTel.getText().toString())
+                .add("vecode",mWagesCodeEt.getText().toString())
+                .add("date",checkYear+"-"+checkMonth)
+                .add("master",master)
+                .method(Method.POST)
+                .build(),new ResultSubscriber<>(new ResultListener<Object>() {
+            @Override
+            public void onResponse(Object o) {
+                LogUtil.prinlnLongMsg("getEmSalary", o.toString()+"");
+                if (!JSONUtil.validate(o.toString()) || o == null) return;
+                if (o.toString().contains("success") && JSON.parseObject(o.toString()).getBoolean("success")){
+                    startActivity(new Intent(ct,WagesDetailsActivity.class)
+                            .putExtra("checkYear",checkYear)
+                            .putExtra("checkMonth",checkMonth)
+                            .putExtra("WageDatas",o.toString()));
+                }else if (o.toString().contains("reason")){
+                    ToastMessage(JSON.parseObject(o.toString()).getString("reason"));
+                }
+
+            }
+        }));
+    }
+    private void setbg(float alpha) {
+        setBackgroundAlpha(this, alpha);
+        if (popupWindow == null) return;
+        popupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
+            @Override
+            public void onDismiss() {
+                setBackgroundAlpha(CheckWagesActivity.this, 1f);
+            }
+        });
+    }
+
+    /**
+     * 设置页面的透明度
+     * 兼容华为手机(在个别华为手机上 设置透明度会不成功)
+     *
+     * @param bgAlpha 透明度   1表示不透明
+     */
+    public void setBackgroundAlpha(Activity activity, float bgAlpha) {
+        WindowManager.LayoutParams lp = activity.getWindow().getAttributes();
+        lp.alpha = bgAlpha;
+        if (bgAlpha == 1) {
+            activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);//不移除该Flag的话,在有视频的页面上的视频会出现黑屏的bug
+        } else {
+            activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);//此行代码主要是解决在华为手机上半透明效果无效的bug
         }
+        activity.getWindow().setAttributes(lp);
     }
 }

+ 195 - 0
app_modular/appme/src/main/java/com/uas/appme/settings/activity/FindWagePWActivity.java

@@ -0,0 +1,195 @@
+package com.uas.appme.settings.activity;
+
+import android.os.Bundle;
+import android.text.InputType;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.View;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.alibaba.fastjson.JSON;
+import com.common.LogUtil;
+import com.common.config.BaseConfig;
+import com.common.data.JSONUtil;
+import com.common.data.StringUtil;
+import com.core.app.MyApplication;
+import com.core.base.BaseActivity;
+import com.core.utils.CommonUtil;
+import com.me.network.app.http.HttpClient;
+import com.me.network.app.http.Method;
+import com.me.network.app.http.rx.ResultListener;
+import com.me.network.app.http.rx.ResultSubscriber;
+import com.uas.appme.R;
+
+/**
+ * Created by FANGlh on 2017/12/11.
+ * function:
+ */
+
+public class FindWagePWActivity extends BaseActivity implements View.OnClickListener {
+    private LinearLayout mStep1Ll;
+    private EditText mPhoneEt;
+    private TextView mClearphoneTv;
+    private Button mNext1Btn;
+    private LinearLayout mStep2Ll;
+    private TextView mTelTv;
+    private EditText mCodeEt;
+    private Button mNext2Btn;
+    private LinearLayout mStep3Ll;
+    private EditText mSetpwEt;
+    private ImageView mEyeTv;
+    private Button mNext3Btn;
+    private Boolean canSeePW  = false;
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.wage_forgetps);
+
+        initView();
+    }
+
+    private void initView() {
+
+        mStep1Ll = (LinearLayout) findViewById(R.id.step1_ll);
+        mPhoneEt = (EditText) findViewById(R.id.phone_et);
+        mClearphoneTv = (TextView) findViewById(R.id.clearphone_tv);
+        mNext1Btn = (Button) findViewById(R.id.next1_btn);
+        mStep2Ll = (LinearLayout) findViewById(R.id.step2_ll);
+        mTelTv = (TextView) findViewById(R.id.tel_tv);
+        mCodeEt = (EditText) findViewById(R.id.code_et);
+        mNext2Btn = (Button) findViewById(R.id.next2_btn);
+        mStep3Ll = (LinearLayout) findViewById(R.id.step3_ll);
+        mSetpwEt = (EditText) findViewById(R.id.setpw_et);
+        mEyeTv = (ImageView) findViewById(R.id.eye_tv);
+        mNext3Btn = (Button) findViewById(R.id.next3_btn);
+
+        mNext1Btn.setOnClickListener(this);
+        mNext2Btn.setOnClickListener(this);
+        mNext3Btn.setOnClickListener(this);
+        mEyeTv.setOnClickListener(this);
+        mClearphoneTv.setOnClickListener(this);
+
+        showStepView(1);
+    }
+
+    @Override
+    public void onClick(View view) {
+        int id = view.getId();
+
+        if (id == R.id.next1_btn){
+            if (StringUtil.isEmpty(mPhoneEt.getText().toString())){
+                ToastMessage("请输入手机号");
+                return;
+            }
+            mTelTv.setText(mPhoneEt.getText().toString());
+            HttpClient httpClient = new HttpClient.Builder("http://192.168.253.58:8080/ERP/").isDebug(true).build(true);
+            httpClient.Api().send(new HttpClient.Builder()
+                    .url("mobile/salary/verificationCode.action")
+//                    .header("Cookie","JSESSIONID="+CommonUtil.getSharedPreferences(BaseConfig.getContext(), "sessionId"))
+                    .add("phone",mPhoneEt.getText().toString())
+                    .method(Method.POST)
+                    .build(),new ResultSubscriber<>(new ResultListener<Object>() {
+                @Override
+                public void onResponse(Object o) {
+                    LogUtil.prinlnLongMsg("verificationCode", o.toString()+"");
+                    if (!JSONUtil.validate(o.toString()) || o == null) return;
+                    if (o.toString().contains("success") && JSON.parseObject(o.toString()).getBoolean("success")){
+                        Toast.makeText(ct,"短信发送成功,请在一分钟内完成输入验证",Toast.LENGTH_LONG).show();
+                        mCodeEt.setText(JSON.parseObject(o.toString()).getString("vecode")+"");
+                        showStepView(2);
+                    }
+
+                }
+            }));
+        }else if (id == R.id.next2_btn){
+            if (StringUtil.isEmpty(mCodeEt.getText().toString())){
+                ToastMessage("请输入验证码");
+                return;
+            }
+            showStepView(3);
+        }else if (id == R.id.next3_btn){
+            if (StringUtil.isEmpty(mSetpwEt.getText().toString())){
+                ToastMessage("请输入新密码");
+                return;
+            }
+            if (mSetpwEt.getText().toString().length()<6){
+                ToastMessage("请设置至少6位数查询密码");
+                return;
+            }
+                doChangePW();
+        }else if (id == R.id.eye_tv){
+            if (canSeePW){
+                canSeePW = false;
+                mSetpwEt.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
+                mEyeTv.setImageResource(R.drawable.icon_unshow);
+            }else {
+                canSeePW = true;
+                mSetpwEt.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
+                mEyeTv.setImageResource(R.drawable.icon_show);
+            }
+        }else if (id == R.id.clearphone_tv){
+
+        }
+    }
+
+    private void doChangePW() {
+        HttpClient httpClient = new HttpClient.Builder("http://192.168.253.58:8080/ERP/").isDebug(true).build(true);
+        httpClient.Api().send(new HttpClient.Builder()
+                .url("mobile/salary/changePassword.action")
+                .add("emcode", "U0747")
+                .add("password",mSetpwEt.getText().toString())
+                .add("phone",mPhoneEt.getText().toString())
+                .add("em_uu", CommonUtil.getSharedPreferences(MyApplication.getInstance(),"erp_uu"))
+                .add("master",CommonUtil.getSharedPreferences(ct, "erp_master"))
+                .header("Cookie","JSESSIONID="+CommonUtil.getSharedPreferences(BaseConfig.getContext(), "sessionId"))
+                .method(Method.POST)
+                .build(),new ResultSubscriber<>(new ResultListener<Object>() {
+            @Override
+            public void onResponse(Object o) {
+                LogUtil.prinlnLongMsg("changePassword", o.toString()+"");
+                if (!JSONUtil.validate(o.toString()) || o == null) return;
+
+                if (o.toString().contains("success") && JSON.parseObject(o.toString()).getBoolean("success")){
+                    Toast.makeText(ct, "设置密码成功", Toast.LENGTH_LONG).show();
+                    finish();
+                }
+
+            }
+        }));
+    }
+
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        return super.onCreateOptionsMenu(menu);
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        return super.onOptionsItemSelected(item);
+    }
+
+    private void showStepView(int step){
+       switch (step){
+           case 1:
+               mStep1Ll.setVisibility(View.VISIBLE);
+               mStep2Ll.setVisibility(View.GONE);
+               mStep3Ll.setVisibility(View.GONE);
+               break;
+           case 2:
+               mStep1Ll.setVisibility(View.GONE);
+               mStep2Ll.setVisibility(View.VISIBLE);
+               mStep3Ll.setVisibility(View.GONE);
+               break;
+           case 3:
+               mStep1Ll.setVisibility(View.GONE);
+               mStep2Ll.setVisibility(View.GONE);
+               mStep3Ll.setVisibility(View.VISIBLE);
+               break;
+       }
+    }
+}

+ 10 - 13
app_modular/appme/src/main/java/com/uas/appme/settings/activity/PersonSettingActivity.java

@@ -379,7 +379,7 @@ public class PersonSettingActivity extends BaseActivity implements View.OnClickL
 
     private void doSave() {
         if (mUserNameTv.testValidity() && mUserSexTv.testValidity()
-                && mUserTelTv.testValidity()){
+                && mUserTelTv.testValidity() && mUserEmailTv.testValidity()){
             if (!StringUtil.isEmpty(mUserEmailTv.getText().toString())) {
                 if (mUserEmailTv.getText().toString().contains("@")){
                     saveRequest();
@@ -409,9 +409,7 @@ public class PersonSettingActivity extends BaseActivity implements View.OnClickL
         params.put("sm_email",mUserEmailTv.getText().toString());
         LogUtil.prinlnLongMsg("appPersonSet",JSONUtil.map2JSON(params));
 
-        HttpClient httpClient =
-//                new HttpClient.Builder(Constant.BASE_BOOKING_SETTING_URL).isDebug(true).build(true);
-                    new HttpClient.Builder(Constants.IM_BASE_URL()).isDebug(true).build(true);
+        HttpClient httpClient = new HttpClient.Builder(Constants.IM_BASE_URL()).isDebug(true).build(true);
         httpClient.Api().send(new HttpClient.Builder()
                 .url("user/appPersonSet")
                 .add("map", JSONUtil.map2JSON(params))
@@ -459,18 +457,15 @@ public class PersonSettingActivity extends BaseActivity implements View.OnClickL
     }
 
     private void jumpTo() {
-        /*Map<String,Object> formStoreMap = new HashMap<>();
+      /*  Map<String,Object> formStoreMap = new HashMap<>();
         formStoreMap.put("userName",mUserNameTv.getText().toString());
         formStoreMap.put("userSex","男".equals(mUserSexTv.getText().toString()) ? "M" : "F");
         formStoreMap.put("userTel",mUserTelTv.getText().toString());
         formStoreMap.put("userEmail",mUserEmailTv.getText().toString());
 
-        HttpClient httpClient =
-//                new HttpClient.Builder(Constant.BASE_BOOKING_SETTING_URL).isDebug(true).build(true);
-                new HttpClient.Builder("http://uas.ubtob.com/")
-                        .isDebug(true).build(true);
+       HttpClient httpClient = new HttpClient.Builder("http://192.168.253.192:8088/").isDebug(true).build(true);
         httpClient.Api().send(new HttpClient.Builder()
-                .url("mobile/adduser/user")
+                .url("platform-b2b/mobile/adduser/user \n")
                 .add("formStore", JSONUtil.map2JSON(formStoreMap))
                 .add("dept",mUserDepartmentEv.getText().toString())
                 .add("role",mUserJobTv.getText().toString())
@@ -503,7 +498,7 @@ public class PersonSettingActivity extends BaseActivity implements View.OnClickL
             }
         }));*/
 
-        if (!StringUtil.isEmpty(sm_id)){
+       if (!StringUtil.isEmpty(sm_id)){
             Toast.makeText(ct,getString(R.string.update_success),Toast.LENGTH_LONG).show();
             setResult(20);
         }else {
@@ -587,6 +582,7 @@ public class PersonSettingActivity extends BaseActivity implements View.OnClickL
 
     private int sendM = 0;
     private void sendMessages( final String modeid, final String name, final String phone) {
+        sendM++;
         StringJsonObjectRequest<AddAttentionResult> request = new StringJsonObjectRequest<AddAttentionResult>(
                 Request.Method.POST, "http://message.ubtob.com/sms/send", new Response.ErrorListener() {
             @Override
@@ -596,10 +592,8 @@ public class PersonSettingActivity extends BaseActivity implements View.OnClickL
         }, new StringJsonObjectRequest.Listener<AddAttentionResult>() {
             @Override
             public void onResponse(ObjectResult<AddAttentionResult> result) {
-                sendM++;
                 if (sendM == 2){
                     Toast.makeText(ct,"短信发送成功",Toast.LENGTH_LONG).show();
-                    jumpTo();
                 }
             }
         }, AddAttentionResult.class, null) {
@@ -619,6 +613,9 @@ public class PersonSettingActivity extends BaseActivity implements View.OnClickL
             }
         };
         MyApplication.getInstance().getFastVolley().addDefaultRequest("Volley", request);
+
+        if (sendM == 2)
+            jumpTo();
     }
 
     private void showSelectSexDialog() {

+ 167 - 40
app_modular/appme/src/main/java/com/uas/appme/settings/activity/WagesDetailsActivity.java

@@ -4,32 +4,51 @@ import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
 import android.os.Bundle;
 import android.os.Environment;
+import android.os.Handler;
 import android.util.Log;
 import android.view.Gravity;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.widget.Button;
+import android.widget.ImageView;
 import android.widget.LinearLayout;
 import android.widget.PopupWindow;
 import android.widget.Toast;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.common.LogUtil;
 import com.common.data.JSONUtil;
+import com.common.data.ListUtils;
 import com.common.data.StringUtil;
 import com.common.system.DisplayUtil;
-import com.core.app.Constants;
-import com.core.app.MyApplication;
+import com.core.api.wxapi.ApiPlatform;
+import com.core.api.wxapi.ApiUtils;
 import com.core.base.BaseActivity;
+import com.core.net.http.ViewUtil;
+import com.core.utils.CommonUtil;
+import com.core.widget.EmptyLayout;
 import com.core.widget.MyListView;
+import com.lidroid.xutils.HttpUtils;
+import com.lidroid.xutils.exception.HttpException;
+import com.lidroid.xutils.http.RequestParams;
+import com.lidroid.xutils.http.ResponseInfo;
+import com.lidroid.xutils.http.callback.RequestCallBack;
+import com.lidroid.xutils.http.client.HttpRequest;
 import com.me.network.app.http.HttpClient;
 import com.me.network.app.http.Method;
 import com.me.network.app.http.rx.ResultListener;
 import com.me.network.app.http.rx.ResultSubscriber;
 import com.uas.appme.R;
+import com.uas.appme.settings.adapter.WagesDetailsAdapter;
 import com.uas.appme.settings.handwritedemo.LinePathView;
+import com.uas.appworks.OA.erp.model.KVMode;
 
+import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.IOException;
+import java.util.ArrayList;
 
 /**
  * Created by FANGlh on 2017/11/10.
@@ -43,44 +62,98 @@ public class WagesDetailsActivity extends BaseActivity implements View.OnClickLi
     private PopupWindow setWindow = null;//
     private LinePathView pathView;
     public static String plainpath= Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "sign.png";
+    private ArrayList<KVMode> kvModeList;
+    private JSONObject salaryObject;
+    private WagesDetailsAdapter myAdapter;
+    private String sl_id = null;
+    private Boolean platform;
+    private ImageView clear_im;
+    private String master;
+    private String emcode;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.wages_details_activity);
+        platform = ApiUtils.getApiModel() instanceof ApiPlatform;
         initView();
 
     }
 
-    private void initData() {
-        HttpClient httpClient = new HttpClient.Builder(Constants.IM_BASE_URL()).isDebug(true).build(true);
-        httpClient.Api().send(new HttpClient.Builder()
-                .url("mobile/salary/getEmSalary.action")
-                .add("emcode", MyApplication.getInstance().getLoginUserId())
-                .add("date",checkYear+checkMonth)
-                .method(Method.POST)
-                .build(),new ResultSubscriber<>(new ResultListener<Object>() {
-            @Override
-            public void onResponse(Object o) {
-                if (!JSONUtil.validate(o.toString()) || o == null) return;
-                LogUtil.prinlnLongMsg("getEmSalary", o.toString()+"");
 
-            }
-        }));
+    private void showDatas(String result) {
+        try {
+            JSONObject salaryObject = JSON.parseObject(result).getJSONObject("salary");
+            if (salaryObject != null){
+                JSONArray configsArray = salaryObject.getJSONArray("configs");
+                JSONObject dataObject = salaryObject.getJSONObject("data");
+                sl_id = dataObject.getString("sl_id");
+                if (!ListUtils.isEmpty(configsArray) && dataObject != null){
+                    for (int i = 0; i < configsArray.size(); i++) {
+                        String key = configsArray.getJSONObject(i).getString("Caption");
+                        String field = configsArray.getJSONObject(i).getString("Field");
+                        if (!StringUtil.isEmpty(key) && !StringUtil.isEmpty(field)){
+                            String value = dataObject.getString(field);
+                            if(!StringUtil.isEmpty(value)){
+                                KVMode kvMode = new KVMode(key,value);
+                                kvModeList.add(kvMode);
+                            }
+                        }
+
+                        if (i == configsArray.size() -1){
+                            myAdapter.setModeList(kvModeList);
+                            myAdapter.notifyDataSetChanged();
+                            LogUtil.prinlnLongMsg("fanglh",JSON.toJSONString(kvModeList));
+                        }
+                    }
+                }else
+                    mEmptyLayout.showEmpty();
+            }else
+                mEmptyLayout.showEmpty();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
     }
 
+    private EmptyLayout mEmptyLayout;
     private void initView() {
+        //        emcode = MyApplication.getInstance().getLoginUserId();
+        emcode = "U0747";
+        master = CommonUtil.getSharedPreferences(ct, "erp_master");
         checkYear = getIntent().getStringExtra("checkYear");
         checkMonth = getIntent().getStringExtra("checkMonth");
         String title = checkYear + "年" + checkMonth + "月"+"工资";
         if (!StringUtil.isEmpty(checkYear) && !StringUtil.isEmpty(checkMonth))
-            initData();
         getSupportActionBar().setTitle(title);
 
         mWagesLv = (MyListView) findViewById(R.id.wages_lv);
         mBtnSignature = (Button) findViewById(R.id.btn_signature); mBtnSignature.setOnClickListener(this);
-    }
+        kvModeList = new ArrayList<>();
+        myAdapter = new WagesDetailsAdapter(this);
+
+        //设置适配器
+        mWagesLv.setAdapter(myAdapter);
 
+        mEmptyLayout = new EmptyLayout(this, mWagesLv);
+        mEmptyLayout.setShowEmptyButton(false);
+        mEmptyLayout.setShowErrorButton(false);
+        mEmptyLayout.setShowLoadingButton(false);
+//        findViewById(R.id.h_sign_tv).setOnClickListener(this);
+
+        String result = getIntent().getStringExtra("WageDatas");
+        showDatas(result);
+
+    }
+//    @Override
+//    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+//        if(resultCode==101 && requestCode == 101){
+//            BitmapFactory.Options options = new BitmapFactory.Options();
+//            options.inSampleSize = 2;
+//            Bitmap bm = BitmapFactory.decodeFile(plainpath, options);
+//            s_image.setImageBitmap(bm);
+//        }
+//
+//    }
     @Override
     public void onClick(View v) {
         if (v.getId() == R.id.btn_signature){
@@ -91,11 +164,11 @@ public class WagesDetailsActivity extends BaseActivity implements View.OnClickLi
             pathView.clear();
             closePopupWindow();
         }
-        /*else if (v.getId() == R.id.hscreen_btn){
-            startActivityForResult(new Intent(this, LandscapeActivity.class)
-                    .putExtra("signCode",001)
-                    , 101);
-        }*/
+//        else if (v.getId() == R.id.h_sign_tv){
+//            startActivityForResult(new Intent(this, LandscapeActivity.class)
+//                            .putExtra("signCode",001)
+//                    , 101);
+//        }
         else if (v.getId() == R.id.submit_btn){
             if (pathView.getTouched())
             {
@@ -103,8 +176,9 @@ public class WagesDetailsActivity extends BaseActivity implements View.OnClickLi
                     pathView.save(plainpath,false,10);  //将图片路径保存到plainpath中,并获取Bimap对象
                     BitmapFactory.Options options = new BitmapFactory.Options();
                     options.inSampleSize = 2;
-                    Bitmap pathBm = BitmapFactory.decodeFile(plainpath, options);
-                    doSubmit(pathBm);
+                    Bitmap pathBm = BitmapFactory.decodeFile(plainpath);
+//                    doSubmit(pathBm,plainpath);
+                    doNewSubmit( pathBm, plainpath);
                 } catch (IOException e) {
                     e.printStackTrace();
                 }
@@ -114,25 +188,66 @@ public class WagesDetailsActivity extends BaseActivity implements View.OnClickLi
         }
     }
 
-    /*  @Override
-    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
-         if(requestCode==101 && resultCode == 102){
-             BitmapFactory.Options options = new BitmapFactory.Options();
-             options.inSampleSize = 2;
-             Bitmap pathBm = BitmapFactory.decodeFile(plainpath, options);
-         }
+    private void doNewSubmit(Bitmap pathBm, String plainpath) {
+        String url = "http://192.168.253.58:8080/ERP/"+"mobile/salary/salaryBack.action";
+        byte[] ppp = getBitmapByte(pathBm);
+        RequestParams params = new RequestParams();
+        params.addBodyParameter("emcode", emcode);
+        params.addBodyParameter("sl_id",sl_id);
+        params.addBodyParameter("result","true");
+        params.addQueryStringParameter("master", master);
+        params.addBodyParameter("msg","");
+        params.addBodyParameter("img",new File(plainpath));
+        final HttpUtils http = new HttpUtils();
+        Log.i("urlparams",url+params+"");
 
-     }*/
-    private void doSubmit(Bitmap pathBm) {
-        Log.i("fanglh",plainpath+","+pathBm);
+        http.send(HttpRequest.HttpMethod.POST, url, params, new RequestCallBack<String>() {
+            @Override
+            public void onStart() {
+                ViewUtil.ToastMessage(ct, getString(R.string.sending_picture)+"...");
+            }
+            @Override
+            public void onSuccess(ResponseInfo<String> responseInfo) {
+                ViewUtil.ToastMessage(ct, getString(R.string.Uploaded_successfully));
+                Log.i("doNewSubmit",JSON.parseObject(responseInfo.result).toJSONString());
+                if (JSONUtil.validate(responseInfo.result) && JSON.parseObject(responseInfo.result).getBoolean("success")) {
+                    Toast.makeText(ct,"提交成功",Toast.LENGTH_LONG).show();
+                    closePopupWindow();
+                }
+                progressDialog.dismiss();
+                Toast.makeText(ct,getString(R.string.fangkui_success),Toast.LENGTH_LONG).show();
+                new Handler().postDelayed(new Runnable() {
+                    @Override
+                    public void run() {
+//                        finish();
+                    }
+                },1000);
+            }
+
+            @Override
+            public void onFailure(HttpException error, String msg) {
+                ViewUtil.ToastMessage(ct, getString(R.string.common_save_failed) + msg);
+                Log.i("doNewSubmit",error+","+msg);
+                progressDialog.dismiss();
+            }
+        });
+    }
 
-        HttpClient httpClient = new HttpClient.Builder(Constants.IM_BASE_URL()).isDebug(true).build(true);
+    private void doSubmit(Bitmap pathBm,String plainpath) {
+        byte[] ppp = getBitmapByte(pathBm);
+        Log.i("fanglh",plainpath+","+pathBm+",ppp="+ppp);
+        clear_im.setImageBitmap(pathBm);
+//        HttpClient httpClient = new HttpClient.Builder(Constants.IM_BASE_URL()).isDebug(true).build(true);
+        HttpClient httpClient = new HttpClient.Builder("http://192.168.253.58:8080/ERP/").isDebug(true).build(true);
         httpClient.Api().send(new HttpClient.Builder()
                 .url("mobile/salary/salaryBack.action")
-                .add("emcode", MyApplication.getInstance().getLoginUserId())
-                .add("sl_id","sl_id")
+                .header("img","img="+ppp)
+                .add("emcode", emcode)
+                .add("sl_id",sl_id)
                 .add("result",true)
-                .add("img","img")
+                .add("img", ppp)
+                .add("master", master)
+                .add("msg","")
                 .method(Method.POST)
                 .build(),new ResultSubscriber<>(new ResultListener<Object>() {
             @Override
@@ -141,8 +256,19 @@ public class WagesDetailsActivity extends BaseActivity implements View.OnClickLi
                 LogUtil.prinlnLongMsg("salaryBack", o.toString()+"");
             }
         }));
-    }
 
+    }
+    private byte[] getBitmapByte(Bitmap bitmap){   //将bitmap转化为二进制字节流
+        ByteArrayOutputStream out = new ByteArrayOutputStream();
+        bitmap.compress(Bitmap.CompressFormat.JPEG, 100, out);
+        try {
+            out.flush();
+            out.close();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return out.toByteArray();
+    }
     private void showSiganWindow() {
         if (setWindow == null) initPopupWindow();
         setWindow.showAtLocation(getWindow().getDecorView().
@@ -157,6 +283,7 @@ public class WagesDetailsActivity extends BaseActivity implements View.OnClickLi
         viewContext.findViewById(R.id.clear_im).setOnClickListener(this);
         viewContext.findViewById(R.id.cancel_tv).setOnClickListener(this);
 //        viewContext.findViewById(R.id.hscreen_btn).setOnClickListener(this);
+        clear_im = (ImageView) viewContext.findViewById(R.id.clear_im);
 
         pathView = (LinePathView) viewContext.findViewById(R.id.sigature_view);
         pathView.setPaintWidth(5);

+ 65 - 0
app_modular/appme/src/main/java/com/uas/appme/settings/adapter/WagesDetailsAdapter.java

@@ -0,0 +1,65 @@
+package com.uas.appme.settings.adapter;
+
+import android.content.Context;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+import android.widget.TextView;
+
+import com.common.data.ListUtils;
+import com.uas.appme.R;
+import com.uas.appworks.OA.erp.model.KVMode;
+
+import java.util.List;
+
+/**
+ * Created by FANGlh on 2017/11/29.
+ * function:
+ */
+
+public class WagesDetailsAdapter extends BaseAdapter {
+    private List<KVMode> modeList;
+    private Context mContext;
+
+    public WagesDetailsAdapter(Context mContext){
+        this.mContext = mContext;
+    }
+    public List<KVMode> getModeList() {
+        return modeList;
+    }
+    public void setModeList(List<KVMode> modeList) {
+        this.modeList = modeList;
+    }
+    @Override
+    public int getCount() {
+        return ListUtils.isEmpty(modeList) ? 0 : modeList.size();
+    }
+    @Override
+    public Object getItem(int position) {
+        return modeList.get(position);
+    }
+    @Override
+    public long getItemId(int position) {
+        return position;
+    }
+    @Override
+    public View getView(int position, View convertView, ViewGroup parent) {
+        WagesHolder wHolder;
+        if (convertView == null) {
+            wHolder = new WagesHolder();
+            convertView = View.inflate(mContext, R.layout.item_comkey_value, null);
+            wHolder.key = (TextView) convertView.findViewById(R.id.item_comdoc_am_list_tv);
+            wHolder.value = (TextView) convertView.findViewById(R.id.item_comdoc_am_value_tv);
+            convertView.setTag(wHolder);
+        } else {
+            wHolder = (WagesHolder) convertView.getTag();
+        }
+        wHolder.key.setText(modeList.get(position).getKey()+"");
+        wHolder.value.setText(modeList.get(position).getValue()+"");
+        return convertView;
+    }
+
+    class WagesHolder{
+        TextView key,value;
+    }
+}

+ 68 - 16
app_modular/appme/src/main/res/layout/check_wages_activity.xml

@@ -9,15 +9,15 @@
         android:id="@+id/wages_date"
         android:layout_width="match_parent"
         android:layout_height="50dp"
-        android:text="2017年11月"
         android:gravity="center_vertical"
         android:layout_marginLeft="10dp"
         android:layout_marginRight="10dp"
         android:drawableRight="@drawable/oa_next"
-        android:textSize="15sp"/>
+        android:textSize="15sp"
+        android:hint="请选择查询日期"/>
     <View
         android:layout_width="match_parent"
-        android:layout_height="2px"
+        android:layout_height="1px"
         android:background="@color/item_line" />
     <com.andreabaccega.widget.FormEditText
         android:id="@+id/wages_phone_et"
@@ -32,28 +32,61 @@
         android:gravity="center_vertical"
         android:inputType="number"
         android:maxLength="11"
+        android:visibility="gone"
         />
+
     <View
     android:layout_width="match_parent"
-    android:layout_height="2px"
+    android:layout_height="1px"
     android:background="@color/item_line" />
-    <com.andreabaccega.widget.FormEditText
-        android:id="@+id/wages_password_et"
+
+    <TextView
+        android:id="@+id/wages_phone_tv"
         android:layout_width="match_parent"
         android:layout_height="50dp"
-        android:textColor="@color/dark_dark_grey"
-        android:padding="10dp"
-        android:layout_centerVertical="true"
-        android:background="@null"
-        android:hint="请输入查询密码"
-        android:textSize="15sp"
+        android:layout_marginLeft="10dp"
+        android:layout_marginRight="10dp"
+        android:drawableRight="@drawable/oa_next"
         android:gravity="center_vertical"
-        android:inputType="textPassword"
-        />
+        android:textSize="15sp" />
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="1px"
+        android:background="@color/item_line" />
+    <RelativeLayout
+        android:layout_width="match_parent"
+        android:layout_height="50dp">
+        <com.andreabaccega.widget.FormEditText
+            android:id="@+id/wages_password_et"
+            android:layout_width="match_parent"
+            android:layout_height="50dp"
+            android:textColor="@color/dark_dark_grey"
+            android:padding="10dp"
+            android:layout_centerVertical="true"
+            android:background="@null"
+            android:hint="请输入查询密码"
+            android:textSize="15sp"
+            android:gravity="center_vertical"
+            android:inputType="textPassword"
+            />
+
+        <Button
+            android:id="@+id/forget_password_btn"
+            android:layout_width="wrap_content"
+            android:layout_height="45dp"
+            android:padding="10dp"
+            android:text="忘记密码"
+            android:textColor="@color/blue"
+            android:textSize="@dimen/text_main"
+            android:layout_alignParentRight="true"
+            android:layout_marginRight="10dp"
+            android:background="@color/white"
+            />
+    </RelativeLayout>
 
     <View
     android:layout_width="match_parent"
-    android:layout_height="2px"
+    android:layout_height="1px"
     android:background="@color/item_line" />
 
     <RelativeLayout
@@ -72,6 +105,7 @@
             android:textSize="15sp"
             android:gravity="center_vertical"
             android:maxLength="6"
+            android:inputType="number"
             />
         <Button
             android:id="@+id/wages_code_btn"
@@ -84,11 +118,29 @@
             android:layout_alignParentRight="true"
             android:layout_marginRight="10dp"
             android:background="@color/white"
+            android:visibility="visible"
+            />
+
+
+        <TextView
+            android:id="@+id/seconds_tv"
+            android:padding="10dp"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="59"
+            android:textColor="@color/red"
+            android:textSize="16sp"
+            android:layout_toLeftOf="@+id/wages_code_btn"
+            android:gravity="center_vertical"
+            android:maxLength="6"
+            android:visibility="gone"
+            android:layout_marginTop="5dp"
             />
+
     </RelativeLayout>
     <View
         android:layout_width="match_parent"
-        android:layout_height="2px"
+        android:layout_height="1px"
         android:background="@color/item_line" />
 
     <Button

+ 26 - 0
app_modular/appme/src/main/res/layout/item_comkey_value.xml

@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <TextView
+        android:id="@+id/item_comdoc_am_list_tv"
+        android:layout_marginTop="5dp"
+        android:layout_width="0dp"
+        android:layout_height="wrap_content"
+        android:layout_weight="1"
+        android:text="开始时间:"
+        android:layout_marginRight="10dp"
+        android:textColor="#6E6E6E"
+        />
+
+    <TextView
+        android:id="@+id/item_comdoc_am_value_tv"
+        android:layout_marginTop="5dp"
+        android:layout_width="0dp"
+        android:layout_height="wrap_content"
+        android:layout_weight="2"
+        android:text="2016-11-25-21:22"
+        android:textColor="@color/done_approval"/>
+
+</LinearLayout>

+ 71 - 0
app_modular/appme/src/main/res/layout/set_wage_password.xml

@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    android:padding="10dp"
+    >
+    <RelativeLayout
+        android:layout_width="match_parent"
+        android:layout_height="50dp"
+        android:orientation="horizontal">
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="首次使用,请设置密码"
+            android:textSize="16sp"
+            />
+
+        <ImageView
+            android:id="@+id/cancel_tv"
+            android:layout_width="20dp"
+            android:layout_height="20dp"
+            android:textSize="20sp"
+            android:src="@drawable/icon_del"
+            android:layout_alignParentRight="true"
+            />
+
+    </RelativeLayout>
+
+    <RelativeLayout
+        android:layout_marginTop="20dp"
+        android:layout_width="match_parent"
+        android:layout_height="50dp">
+
+        <EditText
+            android:id="@+id/input_ps_et"
+            android:background="@null"
+            android:layout_width="250dp"
+            android:layout_height="wrap_content"
+            android:hint="请输入查询密码(限20位)"
+            android:textSize="16sp"
+            android:maxLength="20"
+            android:inputType="textPassword"
+            android:layout_alignParentTop="true"
+            android:layout_alignParentLeft="true"
+            android:layout_alignParentStart="true" />
+        <ImageView
+            android:id="@+id/eye_im"
+            android:src="@drawable/icon_unshow"
+            android:layout_width="20dp"
+            android:layout_height="20dp"
+            android:layout_alignParentRight="true"
+          />
+
+    </RelativeLayout>
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="1px"
+        android:background="@color/item_line" />
+   <Button
+       android:layout_marginTop="10dp"
+       android:id="@+id/sure_btn"
+       android:text="确认"
+       android:layout_gravity="center_horizontal"
+       android:layout_width="80dp"
+       android:layout_height="40dp"
+       android:background="@drawable/bg_bule_btn"
+       android:gravity="center"
+       />
+</LinearLayout>

+ 62 - 44
app_modular/appme/src/main/res/layout/sigature_pop.xml

@@ -16,65 +16,82 @@
             android:textColor="@color/black"
             android:textSize="16sp"
             />
+
         <TextView
             android:id="@+id/cancel_tv"
             android:layout_alignParentRight="true"
-            android:layout_width="100dp"
+            android:layout_width="50dp"
             android:layout_height="wrap_content"
             android:text="取消"
             android:textColor="@color/LightBlue"
             android:textSize="16sp"
             android:gravity="right"
             />
+        <TextView
+            android:id="@+id/h_sign_tv"
+            android:layout_width="80dp"
+            android:layout_height="wrap_content"
+            android:text="横屏签名"
+            android:textColor="@color/LightBlue"
+            android:textSize="16sp"
+            android:gravity="right"
+            android:layout_alignParentTop="true"
+            android:layout_toLeftOf="@id/cancel_tv"
+            android:visibility="gone"/>
+
+        <RelativeLayout
+            android:layout_width="match_parent"
+            android:layout_height="300dp"
+            android:layout_alignParentTop="true"
+            android:layout_centerHorizontal="true"
+            android:layout_marginTop="20dp"
+            android:background="@color/white">
+
+            <Button
+                android:id="@+id/hscreen_btn"
+                android:layout_width="80dp"
+                android:layout_height="35dp"
+                android:layout_alignBottom="@+id/clear_im"
+                android:layout_alignParentLeft="true"
+                android:layout_alignParentStart="true"
+                android:layout_marginLeft="10dp"
+                android:layout_marginStart="10dp"
+                android:background="@drawable/bg"
+                android:text="横屏签名"
+                android:visibility="gone" />
+
+            <ImageView
+                android:id="@+id/clear_im"
+                android:layout_width="25dp"
+                android:layout_height="25dp"
+                android:layout_alignParentRight="true"
+                android:layout_margin="10dp"
+                android:background="@color/white"
+                android:src="@drawable/icon_shuaxin" />
+
+            <View
+                android:id="@+id/view3"
+                android:layout_width="match_parent"
+                android:layout_height="2px"
+                android:layout_below="@+id/clear_im"
+                android:layout_marginTop="5dp"
+                android:background="@color/item_line" />
+
+            <com.uas.appme.settings.handwritedemo.LinePathView
+                android:id="@+id/sigature_view"
+                android:layout_width="match_parent"
+                android:layout_height="250dp"
+                android:layout_below="@+id/view3"
+                android:layout_gravity="center_horizontal"
+                android:background="@color/white" />
+
+        </RelativeLayout>
     </RelativeLayout>
     <View
         android:layout_marginTop="5dp"
         android:layout_width="match_parent"
         android:layout_height="2px"
         android:background="@color/item_line" />
-    <RelativeLayout
-        android:layout_marginLeft="10dp"
-        android:layout_marginRight="10dp"
-        android:layout_marginTop="10dp"
-        android:layout_width="match_parent"
-        android:layout_height="300dp"
-        android:background="@color/white">
-        <Button
-            android:id="@+id/hscreen_btn"
-            android:layout_width="80dp"
-            android:layout_height="35dp"
-            android:text="横屏签名"
-            android:background="@drawable/bg"
-            android:layout_alignBottom="@+id/clear_im"
-            android:layout_alignParentLeft="true"
-            android:layout_alignParentStart="true"
-            android:layout_marginLeft="10dp"
-            android:layout_marginStart="10dp"
-            android:visibility="gone"/>
-        <ImageView
-            android:id="@+id/clear_im"
-            android:layout_alignParentRight="true"
-            android:layout_width="40dp"
-            android:layout_height="40dp"
-            android:src="@drawable/common_header_boy"
-            android:layout_margin="10dp"
-            android:background="@color/white"/>
-        <View
-            android:id="@+id/view3"
-            android:layout_below="@+id/clear_im"
-            android:layout_marginTop="5dp"
-            android:layout_width="match_parent"
-            android:layout_height="2px"
-            android:background="@color/item_line" />
-        <com.uas.appme.settings.handwritedemo.LinePathView
-            android:id="@+id/sigature_view"
-            android:layout_width="match_parent"
-            android:layout_height="250dp"
-            android:layout_gravity="center_horizontal"
-            android:layout_below="@+id/view3"
-            android:background="@color/white"
-            />
-    </RelativeLayout>
 
     <TextView
         android:gravity="center"
@@ -82,6 +99,7 @@
         android:text="签名区域"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
+        android:padding="10dp"
         android:layout_marginLeft="10dp"
         android:layout_marginRight="10dp"/>
     <Button

+ 201 - 0
app_modular/appme/src/main/res/layout/wage_forgetps.xml

@@ -0,0 +1,201 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    android:padding="20dp">
+
+    <ScrollView
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content">
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="vertical">
+            <LinearLayout
+                android:id="@+id/step1_ll"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="vertical"
+                android:visibility="visible">
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="请输入手机号"
+                    android:textSize="20sp"
+                    android:textColor="@color/black"/>
+                <TextView
+                    android:layout_marginTop="30dp"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="手机号码"/>
+
+                <RelativeLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content">
+                    <EditText
+                        android:id="@+id/phone_et"
+                        android:background="@null"
+                        android:layout_width="250dp"
+                        android:layout_height="wrap_content"
+                        android:hint="请输入手机号"
+                        android:padding="20dp"
+                        android:textSize="16sp"
+                        android:maxLength="11"
+                        android:inputType="number"
+                        android:textColor="@color/black"
+                        android:layout_alignParentTop="true"
+                        />
+                    <TextView
+                        android:id="@+id/clearphone_tv"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="X"
+                        android:layout_alignParentRight="true"
+                        android:padding="20dp"
+                        android:textSize="20sp"
+                        />
+                </RelativeLayout>
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="1px"
+                    android:background="@color/item_line" />
+                <Button
+                    android:id="@+id/next1_btn"
+                    android:layout_marginTop="20dp"
+                    android:text="下一步"
+                    android:layout_gravity="center_horizontal"
+                    android:layout_width="match_parent"
+                    android:layout_height="45dp"
+                    android:background="@drawable/bg_bule_btn"
+                    android:gravity="center"
+                    />
+            </LinearLayout>
+
+            <LinearLayout
+                android:id="@+id/step2_ll"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="vertical"
+                android:visibility="visible">
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="请输入验证码"
+                    android:textSize="20sp"
+                    android:textColor="@color/black"/>
+                <LinearLayout
+                    android:layout_marginTop="10dp"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content">
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="验证码已发送至手机:"/>
+                    <TextView
+                        android:id="@+id/tel_tv"
+                        android:layout_marginLeft="10dp"
+                        android:textColor="@color/titleBlue"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="18812345678"/>
+                </LinearLayout>
+                <EditText
+                    android:layout_marginTop="20dp"
+                    android:id="@+id/code_et"
+                    android:background="@null"
+                    android:layout_width="250dp"
+                    android:layout_height="wrap_content"
+                    android:hint="请输入验证码"
+                    android:padding="20dp"
+                    android:textSize="16sp"
+                    android:maxLength="11"
+                    android:inputType="number"
+                    android:textColor="@color/black"
+                    android:layout_alignParentTop="true"
+
+                    />
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="1px"
+                    android:background="@color/item_line" />
+                <Button
+                    android:id="@+id/next2_btn"
+                    android:layout_marginTop="20dp"
+                    android:text="下一步"
+                    android:layout_gravity="center_horizontal"
+                    android:layout_width="match_parent"
+                    android:layout_height="45dp"
+                    android:background="@drawable/bg_bule_btn"
+                    android:gravity="center"
+                    />
+            </LinearLayout>
+
+            <LinearLayout
+                android:id="@+id/step3_ll"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="vertical"
+                android:visibility="visible">
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="请设置密码"
+                    android:textSize="20sp"
+                    android:textColor="@color/black"/>
+                <TextView
+                    android:layout_marginTop="30dp"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="密码"/>
+
+                <RelativeLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content">
+                    <EditText
+                        android:id="@+id/setpw_et"
+                        android:background="@null"
+                        android:layout_width="250dp"
+                        android:layout_height="wrap_content"
+                        android:hint="请输入新密码(限6-20位)"
+                        android:padding="20dp"
+                        android:textSize="16sp"
+                        android:maxLength="15"
+                        android:inputType="textPassword"
+                        android:textColor="@color/black"/>
+                    <ImageView
+                        android:id="@+id/eye_tv"
+                        android:layout_width="20dp"
+                        android:layout_height="20dp"
+                        android:layout_alignParentRight="true"
+                        android:textSize="20sp"
+                        android:src="@drawable/icon_unshow"
+                        />
+                </RelativeLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="1px"
+                    android:background="@color/item_line" />
+                <TextView
+                    android:layout_marginTop="5dp"
+                    android:layout_marginLeft="10dp"
+                    android:textColor="@color/titleBlue"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="需6-20位字符"/>
+                <Button
+                    android:id="@+id/next3_btn"
+                    android:layout_marginTop="20dp"
+                    android:text="下一步"
+                    android:layout_gravity="center_horizontal"
+                    android:layout_width="match_parent"
+                    android:layout_height="45dp"
+                    android:background="@drawable/bg_bule_btn"
+                    android:gravity="center"
+                    />
+            </LinearLayout>
+        </LinearLayout>
+    </ScrollView>
+
+</LinearLayout>

+ 23 - 11
app_modular/appme/src/main/res/layout/wages_details_activity.xml

@@ -5,7 +5,8 @@
     android:orientation="vertical">
     <TextView
         android:background="@color/white"
-        android:layout_margin="10dp"
+        android:paddingLeft="10dp"
+        android:paddingRight="10dp"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:text="公告:本月工资发放内容包括了上个月的餐补,请大家查看明细"/>
@@ -29,20 +30,31 @@
 
                 android:id="@+id/wages_lv"
                 android:layout_width="match_parent"
-                android:layout_height="wrap_content"
+                android:layout_height="match_parent"
+                android:padding="10dp"
                 android:background="@color/white">
             </com.core.widget.MyListView>
-            <Button
-                android:id="@+id/btn_signature"
+            <LinearLayout
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:layout_alignParentBottom="true"
-                android:background="@drawable/bg_bule_btn"
-                android:padding="10dp"
-                android:text="签字"
-                android:textColor="@color/white"
-                android:textSize="@dimen/text_main"
-                />
+                android:orientation="horizontal">
+
+                <Button
+                    android:id="@+id/btn_signature"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:background="@drawable/bg_bule_btn"
+                    android:padding="10dp"
+                    android:text="签字"
+                    android:textColor="@color/white"
+                    android:textSize="@dimen/text_main"
+                    android:layout_weight="1"
+                    android:layout_alignParentBottom="true"
+                    android:layout_marginBottom="30dp"
+                    android:layout_marginLeft="20dp"
+                    android:layout_marginRight="20dp"
+                    android:layout_marginTop="30dp"
+                    /></LinearLayout>
         </LinearLayout>
    </com.core.widget.CustomerScrollView>
 

+ 2 - 2
app_modular/appmessages/src/main/java/com/modular/appmessages/presenter/ApprovaPresenter.java

@@ -454,7 +454,7 @@ public class ApprovaPresenter implements OnHttpResultListener {
         param.put("master", master);
         param.put("id", record.id);
         param.put("isprocess", 1);
-        param.put("config", 0);
+        param.put("config", 1);
         Request.Bulider bulider = new Request.Bulider()
                 .setUrl(url)
                 .setWhat(LOAD_FORMAND_GRIDDATA)
@@ -1046,7 +1046,7 @@ public class ApprovaPresenter implements OnHttpResultListener {
             resultBuilder.append(result);
         }
         if (!StringUtil.isEmpty(description)) {
-            resultBuilder.append("(" + description + ")");
+            resultBuilder.append("(" + description.replace("\\n","\n") + ")");
         }
         approval.setIdKey(resultBuilder.toString());
         approval.setValuesKey(nodeName);

+ 3 - 4
app_modular/appmessages/src/main/java/com/modular/appmessages/presenter/MessagePresenter.java

@@ -14,7 +14,6 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.common.LogUtil;
-import com.common.config.BaseConfig;
 import com.common.data.DateFormatUtil;
 import com.common.data.JSONUtil;
 import com.common.data.ListUtils;
@@ -52,7 +51,6 @@ import com.modular.appmessages.activity.ProcessMsgActivity;
 import com.modular.appmessages.activity.RealTimeFormActivity;
 import com.modular.appmessages.activity.Subscription2Activity;
 import com.modular.appmessages.activity.UUHelperActivity;
-import com.modular.appmessages.activity.UUSportActivity;
 import com.modular.appmessages.db.SubsDao;
 import com.modular.appmessages.model.MessageHeader;
 import com.modular.appmessages.model.SubMessage;
@@ -63,6 +61,7 @@ import com.modular.apputils.utils.SwitchUtil;
 import com.modular.booking.activity.services.BServiceListActivity;
 import com.modular.booking.model.SBMenuModel;
 import com.uas.appworks.CRM.erp.activity.DeviceManageActivity;
+import com.uas.appworks.OA.platform.activity.BusinessTravelActivity;
 import com.uas.appworks.OA.platform.activity.CharitableActivity;
 
 import java.util.ArrayList;
@@ -1069,7 +1068,7 @@ public class MessagePresenter implements OnHttpResultListener {
         }
 
         if (SwitchUtil.showYiyuanjuan()) {
-            model = new MessageHeader("一元捐");
+            model = new MessageHeader("差旅");
             model.setIcon(R.drawable.uu_run);
             model.setSubDoc("");
             model.setRedKey(Constants.MESSAGE_RUN);
@@ -1265,7 +1264,7 @@ public class MessagePresenter implements OnHttpResultListener {
                 ct.startActivity(intent);
                 break;
             case 9:
-                intent = new Intent(ct, CharitableActivity.class);
+                intent = new Intent(ct, BusinessTravelActivity.class);
                 ct.startActivity(intent);
                 break;
             case 10:

+ 1 - 1
app_modular/apputils/src/main/java/com/modular/apputils/utils/SwitchUtil.java

@@ -11,7 +11,7 @@ public class SwitchUtil {
     }
 
     public static boolean showShebeiguanli() {
-        return true;
+        return false;
     }
 
 

+ 157 - 0
app_modular/apputils/src/main/java/com/modular/apputils/utils/TestStr.java

@@ -0,0 +1,157 @@
+package com.modular.apputils.utils;
+
+/**
+ * Created by Bitlike on 2017/12/12.
+ */
+
+public class TestStr {
+
+   public static final String FEEPLEASE= "{\n"+
+            "\t\"sessionId\": \"D71D476BF5EB594EDB54BF46ED12A404\",\n"+
+            "\t\"listdata\": [{\n"+
+            "\t\t\"fp_id\": 42568,\n"+
+            "\t\t\"fp_preenddate\": \"2017-09-30 14:30:00\",\n"+
+            "\t\t\"fp_prestartdate\": \"2017-09-29 09:00:00\",\n"+
+            "\t\t\"fp_code\": \"FP17090084\",\n"+
+            "\t\t\"fp_v3\": \"出差事由\",\n"+
+            "\t\t\"fp_people2\": \"出差人员编号\",\n"+
+            "\t\t\"reimbursement\": [{\n"+
+            "\t\t\t\"type\": \"train\",\n"+
+            "\t\t\t\"fpd_id\": 0121,\n"+
+            "\t\t\t\"fpd_code\": \"2017004010300\",\n"+
+            "\t\t\t\"fpd_starting\": \"深圳\",\n"+
+            "\t\t\t\"fpd_destination\": \"上海\",\n"+
+            "\t\t\t\"fpd_start_time\": 1513041215000,\n"+
+            "\t\t\t\"fpd_end_time\": 1513098815000,\n"+
+            "\t\t\t\"fpd_status\": \"已提交\",\n"+
+            "\t\t\t\"fpd_order_type\": \"成人票\",\n"+
+            "\t\t\t\"fpd_seat\": \"04车12D\",\n"+
+            "\t\t\t\"fpd_real_fee\": \"540\",\n"+
+            "\t\t\t\"fpd_expecte_fee\": \"500\",\n"+
+            "\t\t\t\"fpd_level\": \"一等座\",\n"+
+            "\t\t\t\"fpd_city\": \"深圳\",\n"+
+            "\t\t\t\"fpd_address\": null,\n"+
+            "\t\t\t\"fpd_all_time\": 280000,\n"+
+            "\t\t\t\"fpd_pay_type\": \"公司代付\",\n"+
+            "\t\t\t\"fpd_business_name\": \"深圳北站\",\n"+
+            "\t\t\t\"fpd_number\": \"1\",\n"+
+            "\t\t\t\"fpd_remark\": \"2017年12月12日,订单提交\"\n"+
+            "\t\t},{\n"+
+            "\t\t\t\"type\": \"air\",\n"+
+            "\t\t\t\"fpd_id\": 0122,\n"+
+            "\t\t\t\"fpd_code\": \"2017004010301\",\n"+
+            "\t\t\t\"fpd_starting\": \"深圳\",\n"+
+            "\t\t\t\"fpd_destination\": \"上海\",\n"+
+            "\t\t\t\"fpd_start_time\": 1513041215000,\n"+
+            "\t\t\t\"fpd_end_time\": 1513098815000,\n"+
+            "\t\t\t\"fpd_status\": \"已提交\",\n"+
+            "\t\t\t\"fpd_order_type\": \"成人票\",\n"+
+            "\t\t\t\"fpd_seat\": \"04车12D\",\n"+
+            "\t\t\t\"fpd_real_fee\": \"540\",\n"+
+            "\t\t\t\"fpd_expecte_fee\": \"500\",\n"+
+            "\t\t\t\"fpd_level\": \"头等舱\",\n"+
+            "\t\t\t\"fpd_city\": \"深圳\",\n"+
+            "\t\t\t\"fpd_address\": null,\n"+
+            "\t\t\t\"fpd_all_time\": 280000,\n"+
+            "\t\t\t\"fpd_pay_type\": \"公司代付\",\n"+
+            "\t\t\t\"fpd_business_name\": \"深圳北站\",\n"+
+            "\t\t\t\"fpd_number\": \"1\",\n"+
+            "\t\t\t\"fpd_remark\": \"2017年12月12日,订单提交\"\n"+
+            "\t\t},\n"+
+            "\t\t{\n"+
+            "\t\t\t\"type\": \"hotel\",\n"+
+            "\t\t\t\"fpd_id\": 0123,\n"+
+            "\t\t\t\"fpd_code\": \"2017004010302\",\n"+
+            "\t\t\t\"fpd_starting\": null,\n"+
+            "\t\t\t\"fpd_destination\":null,\n"+
+            "\t\t\t\"fpd_start_time\": 1513041215000,\n"+
+            "\t\t\t\"fpd_end_time\": 1513098815000,\n"+
+            "\t\t\t\"fpd_status\": \"可订购\",\n"+
+            "\t\t\t\"fpd_order_type\": \"全票\",\n"+
+            "\t\t\t\"fpd_seat\": null,\n"+
+            "\t\t\t\"fpd_real_fee\": \"540\",\n"+
+            "\t\t\t\"fpd_expecte_fee\": \"500\",\n"+
+            "\t\t\t\"fpd_level\": \"豪华单间\",\n"+
+            "\t\t\t\"fpd_city\": \"深圳\",\n"+
+            "\t\t\t\"fpd_address\": \"深圳天上人间\",\n"+
+            "\t\t\t\"fpd_all_time\": 280000,\n"+
+            "\t\t\t\"fpd_pay_type\": \"公司代付\",\n"+
+            "\t\t\t\"fpd_business_name\": \"天上人间\",\n"+
+            "\t\t\t\"fpd_number\": \"1\",\n"+
+            "\t\t\t\"fpd_remark\": \"2017年12月12日,订单提交\"\n"+
+            "\t\t}]\n"+
+            "\t},{\n"+
+            "\t\t\"fp_id\": 42568,\n"+
+            "\t\t\"fp_preenddate\": \"2017-09-30 14:30:00\",\n"+
+            "\t\t\"fp_prestartdate\": \"2017-09-29 09:00:00\",\n"+
+            "\t\t\"fp_code\": \"FP17090084\",\n"+
+            "\t\t\"fp_v3\": \"出差事由\",\n"+
+            "\t\t\"fp_people2\": \"出差人员编号\",\n"+
+            "\t\t\"reimbursement\": [{\n"+
+            "\t\t\t\"type\": \"train\",\n"+
+            "\t\t\t\"fpd_id\": 0121,\n"+
+            "\t\t\t\"fpd_code\": \"2017004010300\",\n"+
+            "\t\t\t\"fpd_starting\": \"深圳\",\n"+
+            "\t\t\t\"fpd_destination\": \"上海\",\n"+
+            "\t\t\t\"fpd_start_time\": 1513041215000,\n"+
+            "\t\t\t\"fpd_end_time\": 1513098815000,\n"+
+            "\t\t\t\"fpd_status\": \"已提交\",\n"+
+            "\t\t\t\"fpd_order_type\": \"成人票\",\n"+
+            "\t\t\t\"fpd_seat\": \"04车12D\",\n"+
+            "\t\t\t\"fpd_real_fee\": \"540\",\n"+
+            "\t\t\t\"fpd_expecte_fee\": \"500\",\n"+
+            "\t\t\t\"fpd_level\": \"一等座\",\n"+
+            "\t\t\t\"fpd_city\": \"深圳\",\n"+
+            "\t\t\t\"fpd_address\": null,\n"+
+            "\t\t\t\"fpd_all_time\": 280000,\n"+
+            "\t\t\t\"fpd_pay_type\": \"公司代付\",\n"+
+            "\t\t\t\"fpd_business_name\": \"深圳北站\",\n"+
+            "\t\t\t\"fpd_number\": \"1\",\n"+
+            "\t\t\t\"fpd_remark\": \"2017年12月12日,订单提交\"\n"+
+            "\t\t},{\n"+
+            "\t\t\t\"type\": \"air\",\n"+
+            "\t\t\t\"fpd_id\": 0122,\n"+
+            "\t\t\t\"fpd_code\": \"2017004010301\",\n"+
+            "\t\t\t\"fpd_starting\": \"深圳\",\n"+
+            "\t\t\t\"fpd_destination\": \"上海\",\n"+
+            "\t\t\t\"fpd_start_time\": 1513041215000,\n"+
+            "\t\t\t\"fpd_end_time\": 1513098815000,\n"+
+            "\t\t\t\"fpd_status\": \"已提交\",\n"+
+            "\t\t\t\"fpd_order_type\": \"成人票\",\n"+
+            "\t\t\t\"fpd_seat\": \"04车12D\",\n"+
+            "\t\t\t\"fpd_real_fee\": \"540\",\n"+
+            "\t\t\t\"fpd_expecte_fee\": \"500\",\n"+
+            "\t\t\t\"fpd_level\": \"头等舱\",\n"+
+            "\t\t\t\"fpd_city\": \"深圳\",\n"+
+            "\t\t\t\"fpd_address\": null,\n"+
+            "\t\t\t\"fpd_all_time\": 280000,\n"+
+            "\t\t\t\"fpd_pay_type\": \"公司代付\",\n"+
+            "\t\t\t\"fpd_business_name\": \"深圳北站\",\n"+
+            "\t\t\t\"fpd_number\": \"1\",\n"+
+            "\t\t\t\"fpd_remark\": \"2017年12月12日,订单提交\"\n"+
+            "\t\t},\n"+
+            "\t\t{\n"+
+            "\t\t\t\"type\": \"hotel\",\n"+
+            "\t\t\t\"fpd_id\": 0123,\n"+
+            "\t\t\t\"fpd_code\": \"2017004010302\",\n"+
+            "\t\t\t\"fpd_starting\": null,\n"+
+            "\t\t\t\"fpd_destination\":null,\n"+
+            "\t\t\t\"fpd_start_time\": 1513041215000,\n"+
+            "\t\t\t\"fpd_end_time\": 1513098815000,\n"+
+            "\t\t\t\"fpd_status\": \"可订购\",\n"+
+            "\t\t\t\"fpd_order_type\": \"全票\",\n"+
+            "\t\t\t\"fpd_seat\": null,\n"+
+            "\t\t\t\"fpd_real_fee\": \"540\",\n"+
+            "\t\t\t\"fpd_expecte_fee\": \"500\",\n"+
+            "\t\t\t\"fpd_level\": \"豪华单间\",\n"+
+            "\t\t\t\"fpd_city\": \"深圳\",\n"+
+            "\t\t\t\"fpd_address\": \"深圳天上人间\",\n"+
+            "\t\t\t\"fpd_all_time\": 280000,\n"+
+            "\t\t\t\"fpd_pay_type\": \"公司代付\",\n"+
+            "\t\t\t\"fpd_business_name\": \"天上人间\",\n"+
+            "\t\t\t\"fpd_number\": \"1\",\n"+
+            "\t\t\t\"fpd_remark\": \"2017年12月12日,订单提交\"\n"+
+            "\t\t}]\n"+
+            "\t}]\n"+
+            "}";
+}

+ 46 - 0
app_modular/apputils/src/main/java/com/modular/apputils/widget/SpaceItemDecoration.java

@@ -0,0 +1,46 @@
+package com.modular.apputils.widget;
+
+import android.graphics.Rect;
+import android.support.v7.widget.RecyclerView;
+import android.view.View;
+
+//RecyclerView的空间隔
+public class SpaceItemDecoration extends RecyclerView.ItemDecoration {
+    int mSpace;
+ 
+    /**
+     * Retrieve any offsets for the given item. Each field of <code>outRect</code> specifies
+     * the number of pixels that the item view should be inset by, similar to padding or margin.
+     * The default implementation sets the bounds of outRect to 0 and returns.
+     * <p>
+     * <p>
+     * If this ItemDecoration does not affect the positioning of item views, it should set
+     * all four fields of <code>outRect</code> (left, top, right, bottom) to zero
+     * before returning.
+     * <p>
+     * <p>
+     * If you need to access Adapter for additional data, you can call
+     * {@link RecyclerView#getChildAdapterPosition(View)} to get the adapter position of the
+     * View.
+     *
+     * @param outRect Rect to receive the output.
+     * @param view    The child view to decorate
+     * @param parent  RecyclerView this ItemDecoration is decorating
+     * @param state   The current state of RecyclerView.
+     */
+    @Override
+    public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
+        super.getItemOffsets(outRect, view, parent, state);
+        outRect.left = mSpace;
+        outRect.right = mSpace;
+        outRect.bottom = mSpace;
+        if (parent.getChildAdapterPosition(view) == 0) {
+            outRect.top = mSpace;
+        }
+ 
+    }
+ 
+    public SpaceItemDecoration(int space) {
+        this.mSpace = space;
+    }
+}

+ 87 - 0
app_modular/apputils/src/main/java/com/modular/apputils/widget/TravelDirectionView.java

@@ -0,0 +1,87 @@
+package com.modular.apputils.widget;
+
+import android.content.Context;
+import android.content.res.TypedArray;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Paint;
+import android.support.annotation.Nullable;
+import android.util.AttributeSet;
+import android.view.View;
+
+import com.common.system.DisplayUtil;
+import com.modular.apputils.R;
+
+
+/**
+ * Created by Bitlike on 2017/12/12.
+ */
+
+public class TravelDirectionView extends View {
+
+    private int padding = 0;
+    private int paddingTop = 0;
+    private Paint paint;
+
+
+    private String title;
+    private String time;
+    private float titleSize;
+    private float timeSize = 0;
+
+
+    public TravelDirectionView(Context context) {
+        this(context, null);
+    }
+
+    public TravelDirectionView(Context context, @Nullable AttributeSet attrs) {
+        super(context, attrs);
+        title = "";
+        time = "";
+        float defTextSize = DisplayUtil.dip2px(context, 16);
+        TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.TravelDirectionView);
+        timeSize = typedArray.getDimension(R.styleable.TravelDirectionView_timeSize, defTextSize);
+        titleSize = typedArray.getDimension(R.styleable.TravelDirectionView_titleSize, defTextSize);
+        title = typedArray.getString(R.styleable.TravelDirectionView_title);
+        time = typedArray.getString(R.styleable.TravelDirectionView_time);
+        typedArray.recycle();
+        padding = DisplayUtil.dip2px(context, 8);
+        paddingTop = DisplayUtil.dip2px(context, 3);
+        paint = new Paint();
+        paint.setColor(Color.WHITE);
+        paint.setAntiAlias(true);
+    }
+
+
+    public void  setData(String title,String time){
+        this.title = title;
+        this.time = time;
+        invalidate();
+    }
+    public void setTitle(String title) {
+        this.title = title;
+        invalidate();
+    }
+
+    public void setTime(String time) {
+        this.time = time;
+        invalidate();
+    }
+
+    @Override
+    protected void onDraw(Canvas canvas) {
+        super.onDraw(canvas);
+        int height = getHeight();
+        int width = getWidth();
+        canvas.drawLine(padding, height / 2, width - padding, height / 2, paint);
+        canvas.drawLine(width - padding, height / 2, width - padding - padding, height / 2 - padding, paint);
+
+        paint.setTextSize(titleSize);
+        float titleLength = paint.measureText(title);
+        canvas.drawText(title, (width - titleLength) / 2, height / 2 - paddingTop, paint);
+        paint.setTextSize(timeSize);
+        float timeLength = paint.measureText(time);
+        canvas.drawText(time, (width - timeLength) / 2, height / 2 + paddingTop + timeSize, paint);
+
+    }
+}

+ 11 - 0
app_modular/apputils/src/main/res/drawable/round_bg.xml

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android" >
+
+    <!-- solid 设置stroke设置的边框以内的颜色 -->
+    <solid android:color="#ffffff"/>
+    <!-- stroke主要设置组件的边框。width为边框宽度,color为边框颜色 -->
+    <stroke android:width="3dp" android:color="#ffffff" />
+    <!-- corners 设置边框四角弧度 -->
+    <corners android:radius="10dp"/>
+
+</shape>

+ 2 - 0
app_modular/apputils/src/main/res/values/color.xml

@@ -5,4 +5,6 @@
     <color name="activityed">#999999</color>
     <color name="reactivity">#ef613b</color>
     <color name="indianred_pass">#c84421</color>
+    <color name="cui">#5bbcaf</color>
+    <color name="cui_yellow">#89FC71</color>
 </resources>

+ 5 - 0
app_modular/apputils/src/main/res/values/dimens.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <dimen name="textXXL">20sp</dimen>
+    <dimen name="textXL">18sp</dimen>
+</resources>

+ 1 - 0
app_modular/apputils/src/main/res/values/ids.xml

@@ -1,4 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <resources>
     <item name="tag_key" type="id"></item>
+    <item name="tag_key2" type="id"></item>
 </resources>

+ 6 - 1
app_modular/apputils/src/main/res/values/style.xml

@@ -4,5 +4,10 @@
         <item name="android:windowBackground"> @android:color/transparent </item>
         <item name="android:backgroundDimEnabled">false</item><!--activity不变暗-->
     </style>
-
+    <declare-styleable name="TravelDirectionView">
+        <attr name="title" format="string" />
+        <attr name="time" format="string" />
+        <attr name="titleSize" format="dimension" />
+        <attr name="timeSize" format="dimension" />
+    </declare-styleable>
 </resources>

+ 1 - 0
app_modular/appworks/build.gradle

@@ -22,4 +22,5 @@ dependencies {
     //project
     compile project(':apputils')
     compile project(path: ':imageload')
+    compile 'com.android.support.constraint:constraint-layout:1.0.2'
 }

+ 69 - 60
app_modular/appworks/src/main/AndroidManifest.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<manifest package="com.uas.appworks"
-          xmlns:android="http://schemas.android.com/apk/res/android">
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.uas.appworks">
 
     <application
         android:allowBackup="true"
@@ -14,6 +14,7 @@
             android:theme="@style/OAThemeSignin">
             <intent-filter>
                 <action android:name="com.modular.plat.WorkDailyAddActivity" />
+
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
         </activity>
@@ -28,46 +29,47 @@
             android:windowSoftInputMode="adjustPan">
             <intent-filter>
                 <action android:name="com.modular.oa.ExpenseReimbursementActivity" />
+
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
         </activity>
-        <activity android:name="com.uas.appworks.OA.erp.activity.CommonDocDetailsActivity" />
+        <activity android:name=".OA.erp.activity.CommonDocDetailsActivity" />
         <activity
-            android:name="com.uas.appworks.OA.erp.activity.form.DataFormDetailActivity"
+            android:name=".OA.erp.activity.form.DataFormDetailActivity"
             android:hardwareAccelerated="false">
             <intent-filter>
                 <action android:name="com.modular.form.DataFormDetailActivity" />
+
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
         </activity>
-        <activity android:name="com.uas.appworks.OA.erp.activity.form.DataFormFieldActivity" />
+        <activity android:name=".OA.erp.activity.form.DataFormFieldActivity" />
         <activity
-            android:name="com.uas.appworks.OA.erp.activity.form.FormListSelectActivity"
+            android:name=".OA.erp.activity.form.FormListSelectActivity"
             android:hardwareAccelerated="false"
             android:launchMode="singleTask"
             android:windowSoftInputMode="adjustPan" />
-
         <activity
-            android:name="com.uas.appworks.OA.erp.activity.WorkActivity"
+            android:name=".OA.erp.activity.WorkActivity"
             android:label="@string/activity_signing">
             <intent-filter>
                 <action android:name="com.modular.work.WorkActivity" />
+
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
         </activity>
         <activity
-            android:name="com.uas.appworks.OA.erp.activity.TeamsAttShowActivity"
+            android:name=".OA.erp.activity.TeamsAttShowActivity"
             android:label="@string/sign_teams_rank" />
-
         <activity
-            android:name="com.uas.appworks.OA.erp.activity.MeetDetailsActivity"
+            android:name=".OA.erp.activity.MeetDetailsActivity"
             android:label="@string/meet_detail"
             android:theme="@style/OAThemeMeet" />
         <activity
-            android:name="com.uas.appworks.OA.erp.activity.DetailTaskActivity"
+            android:name=".OA.erp.activity.DetailTaskActivity"
             android:windowSoftInputMode="adjustUnspecified|stateHidden" />
         <activity
-            android:name="com.uas.appworks.OA.erp.activity.AddMeetingActivity"
+            android:name=".OA.erp.activity.AddMeetingActivity"
             android:label="@string/new_meet"
             android:launchMode="singleTask"
             android:screenOrientation="portrait"
@@ -75,151 +77,152 @@
             android:windowSoftInputMode="stateUnspecified|adjustNothing">
             <intent-filter>
                 <action android:name="com.modular.oa.AddMeetingActivity" />
+
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
         </activity>
         <activity
-            android:name="com.uas.appworks.OA.erp.activity.MeetingActivity"
+            android:name=".OA.erp.activity.MeetingActivity"
             android:label="@string/meet_manage"
             android:theme="@style/OAThemeMeet" />
         <activity
-            android:name="com.uas.appworks.OA.erp.activity.SaveMeetActivity"
+            android:name=".OA.erp.activity.SaveMeetActivity"
             android:label="@string/meet_details"
             android:theme="@style/OAThemeMeet" />
         <activity
-            android:name="com.uas.appworks.OA.erp.activity.AddMeetTaskActivity"
+            android:name=".OA.erp.activity.AddMeetTaskActivity"
             android:label="@string/meet_task"
             android:theme="@style/OAThemeMeet" />
-
-        <activity android:name="com.uas.appworks.CRM.erp.activity.DbfindListActivity" />
-        <activity android:name="com.uas.appworks.CRM.erp.activity.DbfindList2Activity" />
-
+        <activity android:name=".CRM.erp.activity.DbfindListActivity" />
+        <activity android:name=".CRM.erp.activity.DbfindList2Activity" />
         <activity
-            android:name="com.uas.appworks.CRM.erp.activity.BusinessActivity"
+            android:name=".CRM.erp.activity.BusinessActivity"
             android:theme="@style/CrmThemeBlue">
             <intent-filter>
                 <action android:name="com.modular.crm.BusinessActivity" />
+
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
         </activity>
         <activity
-            android:name="com.uas.appworks.CRM.erp.activity.BusinessDetailActivty"
+            android:name=".CRM.erp.activity.BusinessDetailActivty"
             android:theme="@style/CrmThemeBlue" />
         <activity
-            android:name="com.uas.appworks.CRM.erp.activity.BusinessDetailInfoActivity"
+            android:name=".CRM.erp.activity.BusinessDetailInfoActivity"
             android:theme="@style/CrmThemeBlue" />
         <activity
-            android:name="com.uas.appworks.CRM.erp.activity.BusinessLessActivity"
+            android:name=".CRM.erp.activity.BusinessLessActivity"
             android:theme="@style/CrmThemeBlue" />
         <activity
-            android:name="com.uas.appworks.CRM.erp.activity.BusinessTransferActivity"
+            android:name=".CRM.erp.activity.BusinessTransferActivity"
             android:theme="@style/CrmThemeBlue" />
         <activity
-            android:name="com.uas.appworks.CRM.erp.activity.BusinessSelectCustomerActivity"
+            android:name=".CRM.erp.activity.BusinessSelectCustomerActivity"
             android:launchMode="singleTask"
             android:theme="@style/CrmThemeBlue"
             android:windowSoftInputMode="adjustResize|stateHidden" />
         <activity
-            android:name="com.uas.appworks.CRM.erp.activity.CustomerAddActivity"
+            android:name=".CRM.erp.activity.CustomerAddActivity"
             android:configChanges="orientation|keyboardHidden"
             android:theme="@style/CrmThemeBlue"
             android:windowSoftInputMode="adjustUnspecified|stateHidden" />
         <activity
-            android:name="com.uas.appworks.CRM.erp.activity.BusinessAddActivity"
+            android:name=".CRM.erp.activity.BusinessAddActivity"
             android:configChanges="orientation|keyboardHidden"
             android:theme="@style/CrmThemeBlue"
             android:windowSoftInputMode="adjustUnspecified|stateHidden" />
         <activity
-            android:name="com.uas.appworks.CRM.erp.activity.BusinessStateActivity"
+            android:name=".CRM.erp.activity.BusinessStateActivity"
             android:launchMode="singleTask"
             android:theme="@style/CrmThemeBlue" />
         <activity
-            android:name="com.uas.appworks.CRM.erp.activity.AddBusinessActivity"
+            android:name=".CRM.erp.activity.AddBusinessActivity"
             android:label="@string/crm_creat_business" />
-        <activity android:name="com.uas.appworks.CRM.erp.activity.SearchSelectActivity" />
+        <activity android:name=".CRM.erp.activity.SearchSelectActivity" />
         <activity
-            android:name="com.uas.appworks.CRM.erp.activity.CustomerDetailActivity"
+            android:name=".CRM.erp.activity.CustomerDetailActivity"
             android:theme="@style/CrmThemeCustomer" />
         <activity
-            android:name="com.uas.appworks.CRM.erp.activity.CustomerListActivity"
+            android:name=".CRM.erp.activity.CustomerListActivity"
             android:theme="@style/CrmThemeCustomer">
             <intent-filter>
                 <action android:name="com.modular.crm.CustomerListActivity" />
+
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
         </activity>
-
         <activity
-            android:name="com.uas.appworks.CRM.erp.activity.CustomerListSelectActivity"
+            android:name=".CRM.erp.activity.CustomerListSelectActivity"
             android:theme="@style/CrmThemeCustomer" />
         <activity
-            android:name="com.uas.appworks.CRM.erp.activity.UserSelectActivity"
+            android:name=".CRM.erp.activity.UserSelectActivity"
             android:label="@string/select_user" />
-
         <activity
-            android:name="com.uas.appworks.OA.erp.activity.FlightsActivity"
+            android:name=".OA.erp.activity.FlightsActivity"
             android:label="@string/activity_flights" />
 
         <!-- 打卡2.0模块 -->
         <activity
-            android:name="com.uas.appworks.OA.erp.activity.OfficeAddressSettingsActivity"
+            android:name=".OA.erp.activity.OfficeAddressSettingsActivity"
             android:label="@string/office_addr_setting" />
         <activity
-            android:name="com.uas.appworks.OA.erp.activity.SignSeniorSettingActivity"
+            android:name=".OA.erp.activity.SignSeniorSettingActivity"
             android:label="@string/super_setting" />
-
-        <activity android:name="com.uas.appworks.OA.erp.activity.AddFlihtsActivity" />
+        <activity android:name=".OA.erp.activity.AddFlihtsActivity" />
         <activity
-            android:name="com.uas.appworks.OA.erp.activity.MyRuleSetActivity"
+            android:name=".OA.erp.activity.MyRuleSetActivity"
             android:label="@string/my_rule_setting" />
         <activity
-            android:name="com.uas.appworks.OA.erp.activity.HolidaysActivity"
+            android:name=".OA.erp.activity.HolidaysActivity"
             android:label="@string/holidays" />
         <activity
-            android:name="com.uas.appworks.OA.erp.activity.StatisticsActivity"
+            android:name=".OA.erp.activity.StatisticsActivity"
             android:label="@string/work_statistics">
             <intent-filter>
                 <action android:name="com.modular.oa.StatisticsActivity" />
+
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
         </activity>
         <activity
-            android:name="com.uas.appworks.OA.erp.activity.ChangeMobileActivity"
+            android:name=".OA.erp.activity.ChangeMobileActivity"
             android:label="@string/change_mobile" />
         <activity
-            android:name="com.uas.appworks.OA.erp.activity.MissionSetActivity"
+            android:name=".OA.erp.activity.MissionSetActivity"
             android:label="@string/activity_mission_set" />
         <activity
-            android:name="com.uas.appworks.OA.erp.activity.MissionActivity"
+            android:name=".OA.erp.activity.MissionActivity"
             android:label="@string/activity_mission_plan">
             <intent-filter>
                 <action android:name="com.modular.work.MissionActivity" />
+
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
         </activity>
         <activity
-            android:name="com.uas.appworks.CRM.erp.activity.SalesRankingActivity"
+            android:name=".CRM.erp.activity.SalesRankingActivity"
             android:label="@string/crmmain_wall_of_fame"
             android:theme="@style/CrmThemeRank">
             <intent-filter>
                 <action android:name="com.modular.crm.SalesRankingActivity" />
+
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
         </activity>
 
-        <!--工作汇报-->
+        <!-- 工作汇报 -->
         <activity
             android:name=".OA.erp.activity.WorkReportMenuActivity"
             android:launchMode="singleTask">
             <intent-filter>
                 <action android:name="com.modular.work.WorkReportMenuActivity" />
+
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
         </activity>
         <activity
             android:name=".OA.erp.activity.WorkReportAddActivity"
             android:windowSoftInputMode="adjustResize|stateHidden" />
-
         <activity
             android:name=".OA.platform.activity.CharitableActivity"
             android:configChanges="keyboardHidden|orientation"
@@ -230,51 +233,54 @@
             android:windowSoftInputMode="stateUnspecified|adjustNothing">
             <intent-filter>
                 <action android:name="com.modular.work.CharitableActivity" />
+
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
         </activity>
         <activity android:name=".OA.platform.activity.CharitSearchActivity" />
-        <activity android:name=".OA.platform.activity.JoinCharitActivity"></activity>
+        <activity android:name=".OA.platform.activity.JoinCharitActivity" />
 
-        <!--工作台模块设置页面-->
+        <!-- 工作台模块设置页面 -->
         <activity android:name=".activity.WorkModuleSortActivity">
             <intent-filter>
                 <action android:name="com.modular.work.WorkModuleSortActivity" />
+
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
         </activity>
-        <!--工作台应用设置页面-->
+        <!-- 工作台应用设置页面 -->
         <activity android:name=".activity.WorkFuncSetActivity">
             <intent-filter>
                 <action android:name="com.modular.work.WorkFuncSetActivity" />
+
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
         </activity>
 
-        <!--产城服务主页面-->
+        <!-- 产城服务主页面 -->
         <activity
             android:name=".activity.CityIndustryServiceMainActivity"
             android:theme="@style/SplashTheme">
             <intent-filter>
                 <action android:name="com.modular.cityIndustry.CityIndustryServiceMainActivity" />
+
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
         </activity>
-
         <activity android:name=".activity.CityIndustryFuncSetActivity">
             <intent-filter>
                 <action android:name="com.modular.work.CityIndustryFuncSetActivity" />
+
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
         </activity>
-
         <activity android:name=".activity.CommonDataFormActivity">
             <intent-filter>
                 <action android:name="com.modular.work.CommonDataFormActivity" />
+
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
         </activity>
-
         <activity
             android:name=".activity.CommonFormListActivity"
             android:hardwareAccelerated="false"
@@ -282,13 +288,14 @@
             android:windowSoftInputMode="adjustPan">
             <intent-filter>
                 <action android:name="com.modular.work.CommonFormListActivity" />
+
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
         </activity>
-
         <activity android:name=".activity.CommonCityIndustryDetailsActivity">
             <intent-filter>
                 <action android:name="com.modular.work.CommonCityIndustryDetailsActivity" />
+
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
         </activity>
@@ -302,5 +309,7 @@
         <activity
             android:name=".CRM.erp.activity.DeviceInputListActivity"
             android:label="@string/title_device_manage" />
+        <activity android:name=".OA.platform.activity.BusinessTravelActivity"></activity>
     </application>
-</manifest>
+
+</manifest>

+ 14 - 12
app_modular/appworks/src/main/java/com/uas/appworks/CRM/erp/activity/BusinessDetailActivty.java

@@ -287,18 +287,20 @@ public class BusinessDetailActivty extends BaseActivity {
             holder.iv_event.setOnClickListener(new View.OnClickListener() {
                 @Override
                 public void onClick(View v) {
-                    if (mdata.get(position).getType() == 1) {
-                        bc_code = mdata.get(position).getNum();
-                        progressDialog.show();
-                        String url = CommonUtil.getAppBaseUrl(ct) + "mobile/crm/ifoverrecv.action";
-                        Map<String, Object> stringMap = new HashMap<String, Object>();
-                        stringMap.put("emcode", CommonUtil.getSharedPreferences(ct, "erp_emname"));
-                        LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
-                        headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
-                        ViewUtil.httpSendRequest(ct, url, stringMap, mHandler, headers, CAN_QIANG_NOT, null, null, "post");
-                    } else if (mdata.get(position).getType() == 2) {
-                        bc_code = mdata.get(position).getNum();
-                        startActivityForResult(new Intent(ct, DbfindList2Activity.class), 1);
+                    if (ListUtils.getSize(mdata)>position){
+                        if (mdata.get(position).getType() == 1) {
+                            bc_code = mdata.get(position).getNum();
+                            progressDialog.show();
+                            String url = CommonUtil.getAppBaseUrl(ct) + "mobile/crm/ifoverrecv.action";
+                            Map<String, Object> stringMap = new HashMap<String, Object>();
+                            stringMap.put("emcode", CommonUtil.getSharedPreferences(ct, "erp_emname"));
+                            LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
+                            headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
+                            ViewUtil.httpSendRequest(ct, url, stringMap, mHandler, headers, CAN_QIANG_NOT, null, null, "post");
+                        } else if (mdata.get(position).getType() == 2) {
+                            bc_code = mdata.get(position).getNum();
+                            startActivityForResult(new Intent(ct, DbfindList2Activity.class), 1);
+                        }
                     }
                 }
             });

+ 3 - 1
app_modular/appworks/src/main/java/com/uas/appworks/OA/erp/activity/ChangeMobileActivity.java

@@ -133,7 +133,9 @@ public class ChangeMobileActivity extends BaseActivity {
                     Crouton.makeText(ct, showMessage);
                     break;
                 default:
-
+                if (progressDialog!=null){
+                    progressDialog.dismiss();
+                }
                     break;
             }
             submiting = false;

+ 32 - 0
app_modular/appworks/src/main/java/com/uas/appworks/OA/erp/model/KVMode.java

@@ -0,0 +1,32 @@
+package com.uas.appworks.OA.erp.model;
+
+/**
+ * Created by FANGlh on 2017/11/29.
+ * function:
+ */
+
+public class KVMode {
+    private String key;
+    private String value;
+
+    public String getKey() {
+        return key;
+    }
+
+    public void setKey(String key) {
+        this.key = key;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    public KVMode(String key, String value) {
+        this.key = key;
+        this.value = value;
+    }
+}

+ 122 - 0
app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/activity/BusinessTravelActivity.java

@@ -0,0 +1,122 @@
+package com.uas.appworks.OA.platform.activity;
+
+import android.os.Bundle;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.common.LogUtil;
+import com.common.config.BaseConfig;
+import com.common.data.JSONUtil;
+import com.core.base.BaseActivity;
+import com.core.utils.CommonUtil;
+import com.core.utils.ToastUtil;
+import com.me.network.app.http.HttpClient;
+import com.me.network.app.http.Method;
+import com.me.network.app.http.rx.ResultListener;
+import com.me.network.app.http.rx.ResultSubscriber;
+import com.modular.apputils.utils.TestStr;
+import com.modular.apputils.widget.SpaceItemDecoration;
+import com.module.recyclerlibrary.ui.refresh.BaseRefreshLayout;
+import com.uas.appworks.OA.platform.adapter.BusinessTravelAdapter;
+import com.uas.appworks.OA.platform.model.BusinessTravel;
+import com.uas.appworks.R;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class BusinessTravelActivity extends BaseActivity {
+    private HttpClient httpClient = new HttpClient.Builder(CommonUtil.getAppBaseUrl(BaseConfig.getContext()))
+            .readTimeout(5000)
+            .connectTimeout(5000)
+            .add("master", CommonUtil.getMaster())
+            .add("sessionUser", CommonUtil.getEmcode())
+            .add("sessionId", CommonUtil.getSharedPreferences(BaseConfig.getContext(), "sessionId"))
+            .isDebug(true).build();
+    private BaseRefreshLayout mRefreshLayout;
+    private RecyclerView mRecyclerView;
+    private BusinessTravelAdapter mAdapter;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_business_travel);
+        initView();
+//        loadData();
+        try {
+            handlerData(null);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    private void initView() {
+        mRefreshLayout = findViewById(R.id.mRefreshLayout);
+        mRecyclerView = findViewById(R.id.mRecyclerView);
+    }
+
+
+    public void loadData() {
+        progressDialog.show();
+        httpClient.Api().send(new HttpClient.Builder()
+                .url("mobile/getFeePlease.action")
+                .add("emcode", CommonUtil.getEmcode())
+                .header("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(BaseConfig.getContext(), "sessionId"))
+                .method(Method.GET)
+                .build(), new ResultSubscriber<>(new ResultListener<Object>() {
+            @Override
+            public void onResponse(Object o) {
+                try {
+                    if (o != null) {
+                        handlerData(o.toString());
+                    }
+                } catch (Exception e) {
+                    if (e != null) {
+                        LogUtil.i("e=" + e.getMessage());
+                        ToastUtil.showToast(ct, e.getMessage());
+                    }
+
+                }
+                mRefreshLayout.stopRefresh();
+                progressDialog.dismiss();
+            }
+        }));
+    }
+
+    private void handlerData(String message) throws Exception {
+        LogUtil.i("message=" + message);
+        message = TestStr.FEEPLEASE;
+        JSONArray listdata = JSONUtil.getJSONArray(message, "listdata");
+        List<BusinessTravel> models = new ArrayList<>();
+        BusinessTravel model = null;
+        for (int i = 0; i < listdata.size(); i++) {
+            JSONObject data = listdata.getJSONObject(i);
+            model = new BusinessTravel();
+            model.setType(BusinessTravel.TITLE);
+            model.setCode(JSONUtil.getText(data, "fp_id"));
+            models.add(model);
+            JSONArray reimbursements = JSONUtil.getJSONArray(data, "reimbursement");
+            for (int j = 0; j < reimbursements.size(); j++) {
+                models.add(new BusinessTravel(reimbursements.getJSONObject(i)));
+            }
+        }
+        setAdapter(models);
+    }
+
+    private void setAdapter(List<BusinessTravel> models) {
+        if (mAdapter == null) {
+            mAdapter = new BusinessTravelAdapter(ct, models, new BusinessTravelAdapter.OnItemClickListener() {
+                @Override
+                public void click(int position, BusinessTravel model) {
+
+                }
+            });
+            mRecyclerView.addItemDecoration(new SpaceItemDecoration(30));
+            mRecyclerView.setLayoutManager(new LinearLayoutManager(ct));
+            mRecyclerView.setAdapter(mAdapter);
+        } else {
+            mAdapter.setModels(models);
+        }
+    }
+}

+ 2 - 2
app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/activity/CharitSearchActivity.java

@@ -131,7 +131,7 @@ public class CharitSearchActivity extends BaseActivity implements OnPlayListener
             return;
         }
         httpClient.Api().send(new HttpClient.Builder()
-                .url("app/activities")
+                .url("activities")
                 .add("keyWork", keyWork)
                 .add("status", "全部")
                 .method(Method.GET)
@@ -155,7 +155,7 @@ public class CharitSearchActivity extends BaseActivity implements OnPlayListener
 
     private void loadProjects(final String keyWork) {
         httpClient.Api().send(new HttpClient.Builder()
-                .url("app/projects")
+                .url("projects")
                 .add("area", "全部")
                 .add("search", keyWork)
                 .method(Method.GET)

+ 1 - 1
app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/activity/JoinCharitActivity.java

@@ -122,7 +122,7 @@ public class JoinCharitActivity extends BaseActivity {
         progressDialog.show();
         HttpClient httpClient = new HttpClient.Builder(Constants.charitBaseUrl()).isDebug(true).build();
         HttpClient builder = new HttpClient.Builder()
-                .url("app/" + (type == 2 ? "joinActivity" : "donateDetail") + "/" + MyApplication.getInstance().getLoginUserId())
+                .url( (type == 2 ? "joinActivity" : "donateDetail") + "/" + MyApplication.getInstance().getLoginUserId())
                 .method(Method.GET)
                 .build();
         httpClient.Api().send(builder, new ResultSubscriber<>(new ResultListener<Object>() {

+ 243 - 0
app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/adapter/BusinessTravelAdapter.java

@@ -0,0 +1,243 @@
+package com.uas.appworks.OA.platform.adapter;
+
+import android.content.Context;
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+
+import com.baidu.cyberplayer.utils.G;
+import com.common.data.DateFormatUtil;
+import com.common.data.ListUtils;
+import com.uas.appworks.OA.platform.model.BusinessTravel;
+import com.uas.appworks.R;
+
+import java.util.List;
+
+/**
+ * Created by Bitlike on 2017/12/12.
+ */
+
+public class BusinessTravelAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> implements View.OnClickListener {
+    private Context ct;
+    private List<BusinessTravel> models;
+    private OnItemClickListener listener;
+
+    public BusinessTravelAdapter(Context ct, List<BusinessTravel> models, OnItemClickListener listener) {
+        this.ct = ct;
+        this.models = models;
+        this.listener = listener;
+    }
+
+
+    public void setModels(List<BusinessTravel> models) {
+        this.models = models;
+        notifyDataSetChanged();
+    }
+
+    public void addModels(List<BusinessTravel> models) {
+        int oldPosition = ListUtils.getSize(this.models);
+        this.models.addAll(models);
+        int position = ListUtils.getSize(this.models);
+        notifyItemRangeInserted(oldPosition, position);
+    }
+
+    @Override
+    public int getItemViewType(int position) {
+        return models.get(position).getType();
+    }
+
+    @Override
+    public int getItemCount() {
+        return ListUtils.getSize(models);
+    }
+
+    @Override
+    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+        if (viewType == BusinessTravel.TITLE) {
+            return new TitleViewHolder(parent);
+        } else if (viewType == BusinessTravel.AIR) {
+            return new AirViewHolder(parent);
+        } else if (viewType == BusinessTravel.HOTEL) {
+            return new HotelViewHolder(parent);
+        }
+        return null;
+    }
+
+    @Override
+    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
+        if (holder != null) {
+            BusinessTravel model = models.get(position);
+            if (holder instanceof TitleViewHolder) {
+                bindTitleView((TitleViewHolder) holder, model);
+            } else if (holder instanceof AirViewHolder) {
+                bindAirView((AirViewHolder) holder, model, position);
+            } else if (holder instanceof HotelViewHolder) {
+                bindHotelView((HotelViewHolder) holder, model,position);
+            }
+
+        }
+    }
+
+    private void bindTitleView(TitleViewHolder holder, BusinessTravel model) {
+        holder.codeTv.setText(model.getCode());
+    }
+
+    private void bindAirView(AirViewHolder holder, BusinessTravel model, int position) {
+        holder.codeTv.setText("住宿:"+model.getCode());
+        holder.statusTv.setText(model.getStatus());
+        holder.levelTv.setText(model.getLevel());
+        holder.businessNameTv.setText(model.getBusinessName());
+        holder.whenLongTv.setText("共1天");
+        holder.numberTv.setText("1人");
+        holder.nameTv.setText("龚鹏明");
+        holder.idTypeTv.setText("二代身份证");
+        holder.idCardTv.setText("450122xxxxxxxxxx");
+        holder.roomsTv.setText("1间");
+        holder.seatTv.setText(model.getSeat());
+        holder.realFeeTv.setText(model.getRealFee());
+        holder.payTypeTv.setText(model.getPayType());
+        holder.addressTv.setText(model.getAddress());
+        holder.dateTv.setText(DateFormatUtil.long2Str(DateFormatUtil.YMD));
+        holder.numberSubTv.setText(model.getNumber() + "人");
+        holder.expecteFeeTv.setText(model.getExpecteFee());
+        holder.subRl.setVisibility(model.isExpand() ? View.VISIBLE : View.GONE);
+        holder.doneTv.setTag(R.id.tag_key, model);
+        holder.doneTv.setOnClickListener(this);
+        holder.expandTv.setTag(R.id.tag_key, model);
+        holder.expandTv.setTag(R.id.tag_key2, position);
+        holder.expandTv.setOnClickListener(this);
+    }
+
+    private void bindHotelView(HotelViewHolder holder, BusinessTravel model, int position) {
+        holder.codeTv.setText(model.getCode());
+        holder.statusTv.setText(model.getStatus());
+        holder.levelTv.setText(model.getLevel());
+        holder.businessNameTv.setText(model.getBusinessName());
+        holder.whenLongTv.setText("共1天");
+        holder.numberTv.setText("1人");
+        holder.nameTv.setText("龚鹏明");
+        holder.idTypeTv.setText("二代身份证");
+        holder.idCardTv.setText("450122xxxxxxxxxx");
+        holder.roomsTv.setText("1间");
+        holder.seatTv.setText(model.getSeat());
+        holder.realFeeTv.setText(model.getRealFee());
+        holder.payTypeTv.setText(model.getPayType());
+        holder.addressTv.setText(model.getAddress());
+        holder.dateTv.setText(DateFormatUtil.long2Str(DateFormatUtil.YMD));
+        holder.numberSubTv.setText(model.getNumber() + "人");
+        holder.expecteFeeTv.setText(model.getExpecteFee());
+        holder.subRl.setVisibility(model.isExpand() ? View.VISIBLE : View.GONE);
+        holder.doneTv.setTag(R.id.tag_key, model);
+        holder.doneTv.setOnClickListener(this);
+        holder.expandTv.setTag(R.id.tag_key, model);
+        holder.expandTv.setTag(R.id.tag_key2, position);
+        holder.expandTv.setOnClickListener(this);
+    }
+
+
+    private LayoutInflater inflater;
+
+    public LayoutInflater getInflater() {
+        return inflater == null ? inflater = LayoutInflater.from(ct) : inflater;
+    }
+
+    private class TitleViewHolder extends RecyclerView.ViewHolder {
+        TextView codeTv;
+
+        public TitleViewHolder(ViewGroup viewGroup) {
+            this(getInflater().inflate(R.layout.item_bus_travel_title, viewGroup, false));
+        }
+
+        public TitleViewHolder(View itemView) {
+            super(itemView);
+            codeTv = (TextView) itemView.findViewById(R.id.codeTv);
+        }
+    }
+
+    private class AirViewHolder extends RecyclerView.ViewHolder {
+        TextView codeTv, statusTv, levelTv, businessNameTv, whenLongTv, numberTv,
+                nameTv, idTypeTv, idCardTv, roomsTv, seatTv, realFeeTv, payTypeTv, doneTv, expandTv, addressTv, dateTv, numberSubTv, expecteFeeTv;
+        RelativeLayout subRl;
+
+        public AirViewHolder(ViewGroup viewGroup) {
+            this(getInflater().inflate(R.layout.item_bus_travel_hotel, viewGroup, false));
+        }
+
+        public AirViewHolder(View itemView) {
+            super(itemView);
+            subRl = itemView.findViewById(R.id.subRl);
+            codeTv = itemView.findViewById(R.id.codeTv);
+            statusTv = itemView.findViewById(R.id.statusTv);
+            levelTv = itemView.findViewById(R.id.statusTv);
+            businessNameTv = itemView.findViewById(R.id.statusTv);
+            whenLongTv = itemView.findViewById(R.id.statusTv);
+            numberTv = itemView.findViewById(R.id.statusTv);
+            nameTv = itemView.findViewById(R.id.statusTv);
+            idTypeTv = itemView.findViewById(R.id.statusTv);
+            idCardTv = itemView.findViewById(R.id.statusTv);
+            roomsTv = itemView.findViewById(R.id.statusTv);
+            seatTv = itemView.findViewById(R.id.statusTv);
+            realFeeTv = itemView.findViewById(R.id.statusTv);
+            payTypeTv = itemView.findViewById(R.id.statusTv);
+            doneTv = itemView.findViewById(R.id.statusTv);
+            expandTv = itemView.findViewById(R.id.statusTv);
+            addressTv = itemView.findViewById(R.id.statusTv);
+            dateTv = itemView.findViewById(R.id.statusTv);
+            numberSubTv = itemView.findViewById(R.id.statusTv);
+            expecteFeeTv = itemView.findViewById(R.id.statusTv);
+        }
+    }
+
+    private class HotelViewHolder extends RecyclerView.ViewHolder {
+        TextView codeTv, statusTv, levelTv, businessNameTv, whenLongTv, numberTv,
+                nameTv, idTypeTv, idCardTv, roomsTv, seatTv, realFeeTv, payTypeTv, doneTv, expandTv, addressTv, dateTv, numberSubTv, expecteFeeTv;
+        RelativeLayout subRl;
+
+        public HotelViewHolder(ViewGroup viewGroup) {
+            this(getInflater().inflate(R.layout.item_bus_travel_hotel, viewGroup, false));
+        }
+
+        public HotelViewHolder(View itemView) {
+            super(itemView);
+            subRl = itemView.findViewById(R.id.subRl);
+            codeTv = itemView.findViewById(R.id.codeTv);
+            statusTv = itemView.findViewById(R.id.statusTv);
+            levelTv = itemView.findViewById(R.id.statusTv);
+            businessNameTv = itemView.findViewById(R.id.statusTv);
+            whenLongTv = itemView.findViewById(R.id.statusTv);
+            numberTv = itemView.findViewById(R.id.statusTv);
+            nameTv = itemView.findViewById(R.id.statusTv);
+            idTypeTv = itemView.findViewById(R.id.statusTv);
+            idCardTv = itemView.findViewById(R.id.statusTv);
+            roomsTv = itemView.findViewById(R.id.statusTv);
+            seatTv = itemView.findViewById(R.id.statusTv);
+            realFeeTv = itemView.findViewById(R.id.statusTv);
+            payTypeTv = itemView.findViewById(R.id.statusTv);
+            doneTv = itemView.findViewById(R.id.statusTv);
+            expandTv = itemView.findViewById(R.id.statusTv);
+            addressTv = itemView.findViewById(R.id.statusTv);
+            dateTv = itemView.findViewById(R.id.statusTv);
+            numberSubTv = itemView.findViewById(R.id.statusTv);
+            expecteFeeTv = itemView.findViewById(R.id.statusTv);
+        }
+    }
+
+    @Override
+    public void onClick(View v) {
+        BusinessTravel model = (BusinessTravel) v.getTag(R.id.tag_key);
+        int position = (int) v.getTag(R.id.tag_key2);
+        if (v.getId() == R.id.expandTv) {
+            model.setExpand(!model.isExpand());
+            notifyItemChanged(position);
+        }
+    }
+
+
+    public interface OnItemClickListener {
+        void click(int position, BusinessTravel model);
+    }
+
+}

+ 1 - 1
app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/fragment/ActivityFragment.java

@@ -164,7 +164,7 @@ public class ActivityFragment extends EasyFragment implements View.OnClickListen
         }
         baseActivity.progressDialog.show();
         httpClient.Api().send(new HttpClient.Builder()
-                .url("app/activities")
+                .url("activities")
                 .add("keyWork", keyWork)
                 .add("status", status)
                 .method(Method.GET)

+ 7 - 22
app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/fragment/CharitableListFragment.java

@@ -139,8 +139,8 @@ public class CharitableListFragment extends EasyFragment implements OnPlayListen
     private void loadData() {
         if (NetUtils.isNetWorkConnected(ct)) {
             baseActivity.progressDialog.show();
-            loadIndexData();
             loadProjects("全部");
+            loadIndexData();
         } else {
             String appIndex = PreferenceUtils.getString("appIndex");
             String projects = PreferenceUtils.getString("projects");
@@ -161,9 +161,8 @@ public class CharitableListFragment extends EasyFragment implements OnPlayListen
 
     public void loadIndexData() {
         baseActivity.progressDialog.show();
-        LogUtil.i("loadIndexData");
         httpClient.Api().send(new HttpClient.Builder()
-                .url("app/appIndex")
+                .url("appIndex")
                 .method(Method.GET)
                 .build(), new ResultSubscriber<>(new ResultListener<Object>() {
             @Override
@@ -191,9 +190,7 @@ public class CharitableListFragment extends EasyFragment implements OnPlayListen
         JSONArray allArea = JSONUtil.getJSONArray(object, "allArea");
         try {
             String totality = JSONUtil.getText(object, "totality");
-            LogUtil.i("totality=" + totality);
             int dian = totality.indexOf(".");
-            LogUtil.i("dian=" + dian);
             String showTop = "";
             if (dian != -1) {
                 showTop = totality.substring(0, dian);
@@ -245,9 +242,8 @@ public class CharitableListFragment extends EasyFragment implements OnPlayListen
 
     private void loadProjects(final String area) {
         baseActivity.progressDialog.show();
-        LogUtil.i("loadProjects=" + area);
         httpClient.Api().send(new HttpClient.Builder()
-                .url("app/projects")
+                .url("projects")
                 .add("area", area)
                 .method(Method.GET)
                 .build(), new ResultSubscriber<>(new ResultListener<Object>() {
@@ -274,17 +270,6 @@ public class CharitableListFragment extends EasyFragment implements OnPlayListen
         JSONArray projectList = JSONUtil.getJSONArray(object, "projectList");
         String projectJSON = projectList.toJSONString();
         List<CharitModel> models = JSON.parseArray(projectJSON, CharitModel.class);
-//        List<CharitModel> showModels = null;
-//        if ("全部".equals(area) || area.length() <= 0) {
-//            showModels = models;
-//        } else {
-//            showModels = new ArrayList<>();
-//            for (CharitModel e : models) {
-//                if (e.getArea().equals(area)) {
-//                    showModels.add(e);
-//                }
-//            }
-//        }
         setContantData(models);
         PreferenceUtils.putString("projects", message);
     }
@@ -344,7 +329,7 @@ public class CharitableListFragment extends EasyFragment implements OnPlayListen
     private CharitableAdapter charitableAdapter;
 
     private void setContantData(List<CharitModel> models) {
-        if (charitableAdapter == null) {
+//        if (charitableAdapter == null) {
             charitableAdapter = new CharitableAdapter(ct, models, new CharitableAdapter.MyClickListener() {
                 @Override
                 public void myOnClick(int position, View v) {
@@ -381,9 +366,9 @@ public class CharitableListFragment extends EasyFragment implements OnPlayListen
                     }
                 }
             });
-        } else {
-            charitableAdapter.setModels(models);
-        }
+//        } else {
+//            charitableAdapter.setModels(models);
+//        }
     }
 
 

+ 1 - 1
app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/fragment/UserFragment.java

@@ -88,7 +88,7 @@ public class UserFragment extends EasyFragment implements View.OnClickListener {
             return;
         }
         httpClient.Api().send(new HttpClient.Builder()
-                .url("app/center")
+                .url("center")
                 .add("imid", MyApplication.getInstance().getLoginUserId())
                 .method(Method.GET)
                 .build(), new ResultSubscriber<>(new ResultListener<Object>() {

+ 242 - 0
app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/model/BusinessTravel.java

@@ -0,0 +1,242 @@
+package com.uas.appworks.OA.platform.model;
+
+import com.alibaba.fastjson.JSONObject;
+import com.common.LogUtil;
+import com.common.data.JSONUtil;
+
+
+/**
+ * Created by Bitlike on 2017/12/12.
+ */
+
+public class BusinessTravel {
+    public static final int TITLE = 1;
+    public static final int AIR = 2;//
+    public static final int HOTEL = 3;
+    private boolean expand;
+    private int id;
+    private int type;
+    private int number;
+    private long allTime;
+    private long startTime;
+    private long endTime;
+    private String code;
+    private String starting;
+    private String destination;
+    private String status;
+    private String orderType;
+    private String seat;
+    private String realFee;
+    private String expecteFee;
+    private String level;
+    private String city;
+    private String address;
+    private String payType;
+    private String businessName;
+    private String remark;
+
+    public BusinessTravel() {
+    }
+
+    public BusinessTravel(JSONObject reimbursement) {
+        try {
+            id = JSONUtil.getInt(reimbursement, "fpd_id");
+            String type = JSONUtil.getText(reimbursement, "type");
+            code = JSONUtil.getText(reimbursement, "fpd_code");
+            starting = JSONUtil.getText(reimbursement, "fpd_starting");
+            destination = JSONUtil.getText(reimbursement, "fpd_destination");
+            startTime = JSONUtil.getLong(reimbursement, "fpd_start_time");
+            endTime = JSONUtil.getLong(reimbursement, "fpd_end_time");
+            status = JSONUtil.getText(reimbursement, "fpd_status");
+            orderType = JSONUtil.getText(reimbursement, "fpd_order_type");
+            seat = JSONUtil.getText(reimbursement, "fpd_seat");
+            realFee = JSONUtil.getText(reimbursement, "fpd_real_fee");
+            expecteFee = JSONUtil.getText(reimbursement, "fpd_expecte_fee");
+            level = JSONUtil.getText(reimbursement, "fpd_level");
+            city = JSONUtil.getText(reimbursement, "fpd_city");
+            address = JSONUtil.getText(reimbursement, "fpd_address");
+            allTime = JSONUtil.getLong(reimbursement, "fpd_all_time");
+            number = JSONUtil.getInt(reimbursement, "fpd_number");
+            payType = JSONUtil.getText(reimbursement, "fpd_pay_type");
+            businessName = JSONUtil.getText(reimbursement, "fpd_business_name");
+            remark = JSONUtil.getText(reimbursement, "fpd_remark");
+            if (type.equals("train") || type.equals("air")) {
+                this.type = AIR;
+            } else if (type.equals("hotel")) {
+                this.type = HOTEL;
+            } else {
+                this.type = TITLE;
+            }
+        } catch (Exception e) {
+            LogUtil.i("e="+e.getMessage());
+        }
+    }
+
+    public boolean isExpand() {
+        return expand;
+    }
+
+    public void setExpand(boolean expand) {
+        this.expand = expand;
+    }
+
+    public int getId() {
+        return id;
+    }
+
+    public void setId(int id) {
+        this.id = id;
+    }
+
+    public int getType() {
+        return type;
+    }
+
+    public void setType(int type) {
+        this.type = type;
+    }
+
+    public long getAllTime() {
+        return allTime;
+    }
+
+    public void setAllTime(long allTime) {
+        this.allTime = allTime;
+    }
+
+    public long getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(long startTime) {
+        this.startTime = startTime;
+    }
+
+    public long getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(long endTime) {
+        this.endTime = endTime;
+    }
+
+    public String getCode() {
+        return code==null?"":code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getStarting() {
+        return starting;
+    }
+
+    public void setStarting(String starting) {
+        this.starting = starting;
+    }
+
+    public String getDestination() {
+        return destination;
+    }
+
+    public void setDestination(String destination) {
+        this.destination = destination;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    public String getOrderType() {
+        return orderType;
+    }
+
+    public void setOrderType(String orderType) {
+        this.orderType = orderType;
+    }
+
+    public String getSeat() {
+        return seat;
+    }
+
+    public void setSeat(String seat) {
+        this.seat = seat;
+    }
+
+    public String getRealFee() {
+        return realFee;
+    }
+
+    public void setRealFee(String realFee) {
+        this.realFee = realFee;
+    }
+
+    public String getExpecteFee() {
+        return expecteFee;
+    }
+
+    public void setExpecteFee(String expecteFee) {
+        this.expecteFee = expecteFee;
+    }
+
+    public String getLevel() {
+        return level;
+    }
+
+    public void setLevel(String level) {
+        this.level = level;
+    }
+
+    public String getCity() {
+        return city;
+    }
+
+    public void setCity(String city) {
+        this.city = city;
+    }
+
+    public String getAddress() {
+        return address==null?"":address;
+    }
+
+    public void setAddress(String address) {
+        this.address = address;
+    }
+
+    public String getPayType() {
+        return payType;
+    }
+
+    public void setPayType(String payType) {
+        this.payType = payType;
+    }
+
+    public String getBusinessName() {
+        return businessName==null?"":businessName;
+    }
+
+    public void setBusinessName(String businessName) {
+        this.businessName = businessName;
+    }
+
+    public int getNumber() {
+        return number;
+    }
+
+    public void setNumber(int number) {
+        this.number = number;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+}

+ 18 - 0
app_modular/appworks/src/main/res/layout/activity_business_travel.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<com.module.recyclerlibrary.ui.refresh.simlpe.SimpleRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:id="@+id/mRefreshLayout"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@color/base_bg"
+    app:enablePullDown="true"
+    app:enablePullUp="true"
+    tools:context="com.uas.appworks.OA.platform.activity.BusinessTravelActivity">
+
+    <android.support.v7.widget.RecyclerView
+        android:id="@+id/mRecyclerView"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent" />
+
+</com.module.recyclerlibrary.ui.refresh.simlpe.SimpleRefreshLayout>

+ 277 - 0
app_modular/appworks/src/main/res/layout/item_bus_travel_hotel.xml

@@ -0,0 +1,277 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:layout_margin="@dimen/padding"
+    android:background="@drawable/round_bg"
+    android:orientation="vertical">
+
+    <RelativeLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:background="@color/cui"
+        android:padding="@dimen/padding">
+
+        <TextView
+            android:id="@+id/codeTv"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:gravity="center_horizontal"
+            android:paddingBottom="5dp"
+            android:paddingLeft="10dp"
+            android:paddingRight="10dp"
+            android:paddingTop="5dp"
+            android:text="住宿"
+            android:textColor="@color/white"
+            android:textSize="@dimen/text_hine" />
+
+        <TextView
+            android:id="@+id/statusTv"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_alignParentRight="true"
+            android:layout_alignTop="@id/codeTv"
+            android:paddingBottom="5dp"
+            android:paddingLeft="10dp"
+            android:paddingRight="10dp"
+            android:paddingTop="5dp"
+            android:text="住宿"
+            android:textColor="@color/cui_yellow"
+            android:textSize="@dimen/text_hine" />
+
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/line"
+            android:background="@color/white" />
+
+        <TextView
+            android:id="@+id/levelTv"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_alignLeft="@id/codeTv"
+            android:layout_below="@id/codeTv"
+            android:textColor="@color/white"
+            android:textSize="@dimen/textXXL" />
+
+        <TextView
+            android:id="@+id/businessNameTv"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_alignBottom="@id/levelTv"
+            android:layout_toRightOf="@id/levelTv"
+            android:textColor="@color/white"
+            android:textSize="@dimen/textXL" />
+
+        <TextView
+            android:id="@+id/whenLongTv"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_alignLeft="@id/levelTv"
+            android:layout_below="@id/levelTv"
+            android:textColor="@color/white"
+            android:textSize="@dimen/text_hine" />
+
+        <TextView
+            android:id="@+id/numberTv"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_alignLeft="@id/whenLongTv"
+            android:layout_below="@id/whenLongTv"
+            android:textColor="@color/white"
+            android:textSize="@dimen/text_hine" />
+
+
+    </RelativeLayout>
+
+    <RelativeLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:background="@color/white"
+        android:padding="@dimen/padding">
+
+        <TextView
+            android:id="@+id/nameTv"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginRight="@dimen/padding"
+            android:textColor="@color/text_main"
+            android:textSize="@dimen/text_main" />
+
+        <TextView
+            android:id="@+id/idTypeTv"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_alignParentRight="true"
+            android:layout_alignTop="@id/nameTv"
+            android:layout_marginLeft="@dimen/padding"
+            android:text="二代身份证"
+            android:textColor="@color/text_hine"
+            android:textSize="@dimen/text_hine" />
+
+        <TextView
+            android:id="@+id/idCardTv"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginLeft="@dimen/padding"
+            android:layout_toLeftOf="@id/idTypeTv"
+            android:layout_toRightOf="@id/nameTv"
+            android:textColor="@color/text_hine"
+            android:textSize="@dimen/text_hine" />
+
+        <TextView
+            android:id="@+id/roomsTv"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_below="@id/nameTv"
+            android:layout_marginBottom="@dimen/padding"
+            android:layout_marginTop="@dimen/padding"
+            android:text="1间"
+            android:textColor="@color/text_main"
+            android:textSize="@dimen/text_main" />
+
+        <TextView
+            android:id="@+id/seatTv"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_alignLeft="@id/idCardTv"
+            android:layout_alignTop="@id/roomsTv"
+            android:layout_marginRight="@dimen/padding"
+            android:text="1间"
+            android:textColor="@color/text_main"
+            android:textSize="@dimen/text_main" />
+
+        <TextView
+            android:id="@+id/realFeeTv"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_alignTop="@id/roomsTv"
+            android:layout_marginLeft="@dimen/padding"
+            android:layout_toRightOf="@id/seatTv"
+            android:text="1间"
+            android:textColor="@color/text_main"
+            android:textSize="@dimen/text_main" />
+
+        <TextView
+            android:id="@+id/payTypeTv"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_alignParentRight="true"
+            android:layout_alignTop="@id/roomsTv"
+            android:text="1间"
+            android:textColor="@color/text_main"
+            android:textSize="@dimen/text_main" />
+
+        <TextView
+            android:id="@+id/doneTv"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_alignParentRight="true"
+            android:layout_below="@id/roomsTv"
+            android:text="取消预约" />
+
+        <TextView
+            android:id="@+id/expandTv"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_alignBottom="@id/doneTv"
+            android:layout_below="@id/roomsTv"
+            android:drawableRight="@drawable/icon_more_down"
+            android:text="申请记录" />
+
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/line"
+            android:layout_below="@id/doneTv" />
+
+    </RelativeLayout>
+
+
+    <RelativeLayout
+        android:id="@+id/subRl"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:background="@color/white">
+
+        <TextView
+            android:id="@+id/addressTag"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginRight="@dimen/padding"
+            android:layout_marginTop="@dimen/padding"
+            android:text="城市地址" />
+
+        <TextView
+            android:id="@+id/addressTv"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginLeft="@dimen/padding"
+            android:layout_toRightOf="@id/addressTag"
+            android:drawableRight="@drawable/icon_more_down"
+            android:ellipsize="end"
+            android:lines="1" />
+
+        <TextView
+            android:id="@+id/dateTag"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_below="@id/addressTag"
+            android:layout_marginRight="@dimen/padding"
+            android:layout_marginTop="@dimen/padding"
+            android:text="入住日期:" />
+
+        <TextView
+            android:id="@+id/dateTv"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_alignLeft="@id/addressTv"
+            android:layout_alignTop="@id/dateTag"
+            android:layout_marginLeft="@dimen/padding"
+            android:layout_toRightOf="@id/dateTag"
+            android:drawableRight="@drawable/icon_more_down"
+            android:ellipsize="end"
+            android:lines="1" />
+
+        <TextView
+            android:id="@+id/numberTag"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_below="@id/dateTag"
+            android:layout_marginRight="@dimen/padding"
+            android:layout_marginTop="@dimen/padding"
+            android:text="人数:" />
+
+        <TextView
+            android:id="@+id/numberSubTv"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_alignLeft="@id/addressTv"
+            android:layout_alignTop="@id/numberTag"
+            android:layout_marginLeft="@dimen/padding"
+            android:layout_toRightOf="@id/numberTag"
+            android:drawableRight="@drawable/icon_more_down"
+            android:ellipsize="end"
+            android:lines="1" />
+
+
+        <TextView
+            android:id="@+id/expecteFeeTag"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_below="@id/numberTag"
+            android:layout_marginRight="@dimen/padding"
+            android:layout_marginTop="@dimen/padding"
+            android:text="预计费用:" />
+
+        <TextView
+            android:id="@+id/expecteFeeTv"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_alignLeft="@id/addressTv"
+            android:layout_alignTop="@id/expecteFeeTag"
+            android:layout_marginLeft="@dimen/padding"
+            android:layout_toRightOf="@id/expecteFeeTag"
+            android:drawableRight="@drawable/icon_more_down"
+            android:ellipsize="end"
+            android:lines="1" />
+    </RelativeLayout>
+</LinearLayout>

+ 32 - 0
app_modular/appworks/src/main/res/layout/item_bus_travel_title.xml

@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:gravity="center_vertical"
+    android:orientation="horizontal">
+
+    <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginBottom="@dimen/padding"
+        android:layout_marginTop="@dimen/padding"
+        android:gravity="center_horizontal"
+        android:paddingLeft="10dp"
+        android:paddingRight="10dp"
+        android:text="出差单号"
+        android:textColor="@color/hint_text_color"
+        android:textSize="@dimen/text_hine" />
+
+    <TextView
+        android:id="@+id/codeTv"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginBottom="@dimen/padding"
+        android:layout_marginTop="@dimen/padding"
+        android:gravity="center_horizontal"
+        android:paddingLeft="10dp"
+        android:paddingRight="10dp"
+        android:text="出差单号"
+        android:textColor="@color/black"
+        android:textSize="@dimen/text_main" />
+</LinearLayout>

+ 0 - 2
app_modular/appworks/src/main/res/values/strings.xml

@@ -67,6 +67,4 @@
     <string name="text_cycle_count">周期盘点</string>
 
 
-
-
 </resources>