Browse Source

17:21 报销单基本界面

FANGLH 9 years ago
parent
commit
fb148d26ae

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

@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.xzjmyk.pm.activity"
-    android:versionCode="91"
-    android:versionName="5.7.7" >
+    android:versionCode="92"
+    android:versionName="5.7.8" >
 
     <uses-sdk
         android:minSdkVersion="11"
@@ -941,6 +941,10 @@
             android:label="@string/info_2dcode"></activity>
         <activity android:name=".ui.me.ScanInfoResultsActivity"
             android:label="扫描结果"></activity>
+        <activity android:name=".ui.erp.activity.oa.ExpenseReimbursementActivity"
+            android:label="费用报销单"
+            android:windowSoftInputMode="adjustPan">
+        </activity>
     </application>
 
 </manifest>

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

@@ -0,0 +1,240 @@
+package com.xzjmyk.pm.activity.ui.erp.activity.oa;
+
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.net.Uri;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.AdapterView;
+import android.widget.BaseAdapter;
+import android.widget.Button;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import com.andreabaccega.widget.FormEditText;
+import com.lidroid.xutils.ViewUtils;
+import com.lidroid.xutils.view.annotation.ViewInject;
+import com.nostra13.universalimageloader.core.ImageLoader;
+import com.xzjmyk.pm.activity.AppConstant;
+import com.xzjmyk.pm.activity.R;
+import com.xzjmyk.pm.activity.ui.base.BaseActivity;
+import com.xzjmyk.pm.activity.ui.tool.MultiImagePreviewActivity;
+import com.xzjmyk.pm.activity.util.CameraUtil;
+import com.xzjmyk.pm.activity.util.ToastUtil;
+import com.xzjmyk.pm.activity.view.MyGridView;
+import com.xzjmyk.pm.activity.view.SquareCenterImageView;
+
+import java.io.File;
+import java.util.ArrayList;
+
+/**
+ * Created by FANGlh on 2017/6/9.
+ * function:
+ */
+
+public class ExpenseReimbursementActivity extends BaseActivity implements View.OnClickListener{
+    @ViewInject(R.id.reimbursement_title_fet)
+    private FormEditText reimbursement_title_fet;
+    @ViewInject(R.id.reimbursement_type_fet)
+    private FormEditText reimbursement_type_fet;
+    @ViewInject(R.id.reimbursement_currency_fet)
+    private FormEditText reimbursement_currency_fet;
+    @ViewInject(R.id.btn_save)
+    private Button btn_save;
+    @ViewInject(R.id.select_img_layout)
+    private View mSelectImgLayout;
+    private MyGridView mGridView;
+    private GridViewAdapter mAdapter;
+    private ArrayList<String> mPhotoList;
+    private Uri mNewPhotoUri;// 拍照和图库 获得图片的URI
+    private static final int REQUEST_CODE_CAPTURE_PHOTO = 1;// 拍照
+    private static final int REQUEST_CODE_PICK_PHOTO = 2;// 图库
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_expense_reimbursement);
+        ViewUtils.inject(this);
+        iniView();
+        initPicturesEvent();
+    }
+    private void iniView() {
+        reimbursement_title_fet.setOnClickListener(this);
+
+        reimbursement_type_fet.setKeyListener(null);
+        reimbursement_type_fet.setFocusable(false);
+        reimbursement_type_fet.setOnClickListener(this);
+
+        reimbursement_currency_fet.setOnClickListener(this);
+        btn_save.setOnClickListener(this);
+
+        mGridView = (MyGridView) findViewById(R.id.grid_view);
+        mPhotoList = new ArrayList<String>();
+        mAdapter = new GridViewAdapter();
+        mGridView.setAdapter(mAdapter);
+    }
+
+    @Override
+    public void onClick(View v) {
+        switch (v.getId()){
+            case R.id.reimbursement_title_fet:
+                break;
+            case R.id.reimbursement_type_fet:
+                break;
+            case R.id.reimbursement_currency_fet:
+                break;
+            case R.id.btn_save:
+                break;
+        }
+    }
+
+    private void initPicturesEvent() {
+        mGridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
+            @Override
+            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+                int viewType = mAdapter.getItemViewType(position);
+
+                if (viewType == 1) {
+                    showSelectPictureDialog();//第一个
+                    //TODO 选择图片页面
+//                    startActivityForResult(new Intent(ct, PhoneSelectActivity.class), 222);
+                } else {
+                    showPictureActionDialog(position);
+                }
+            }
+        });
+    }
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+        super.onActivityResult(requestCode, resultCode, data);
+        if (requestCode == REQUEST_CODE_CAPTURE_PHOTO) {// 拍照返回
+            if (resultCode == Activity.RESULT_OK) {
+                if (mNewPhotoUri != null) {
+                    mPhotoList.add(mNewPhotoUri.getPath());
+                    mAdapter.notifyDataSetInvalidated();
+                } else {
+                    ToastUtil.showToast(this, R.string.c_take_picture_failed);
+                }
+            }
+        }else if (requestCode == REQUEST_CODE_PICK_PHOTO) {// 选择一张图片,然后立即调用裁减
+            if (resultCode == Activity.RESULT_OK) {
+                if (data != null && data.getData() != null) {
+                    String path = CameraUtil.getImagePathFromUri(this, data.getData());
+                    mPhotoList.add(path);
+                    mAdapter.notifyDataSetInvalidated();
+                } else {
+                    ToastUtil.showToast(this, R.string.c_photo_album_failed);
+                }
+            }
+        }
+    }
+
+    private void showSelectPictureDialog() {
+        String[] items = new String[]{getString(R.string.c_take_picture), getString(R.string.c_photo_album)};
+        AlertDialog.Builder builder = new AlertDialog.Builder(this).setSingleChoiceItems(items, 0,
+                new DialogInterface.OnClickListener() {
+                    @Override
+                    public void onClick(DialogInterface dialog, int which) {
+                        if (which == 0) {
+                            takePhoto();
+                        } else {
+                            selectPhoto();
+                        }
+                        dialog.dismiss();
+                    }
+                });
+        builder.show();
+    }
+    private void showPictureActionDialog(final int position) {
+        String[] items = new String[]{getString(R.string.look_over), getString(R.string.common_delete)};
+        AlertDialog.Builder builder = new AlertDialog.Builder(this).setTitle(R.string.pictures)
+                .setSingleChoiceItems(items, 0, new DialogInterface.OnClickListener() {
+                    @Override
+                    public void onClick(DialogInterface dialog, int which) {
+                        if (which == 0) {// 查看
+                            Intent intent = new Intent(ct, MultiImagePreviewActivity.class);
+                            intent.putExtra(AppConstant.EXTRA_IMAGES, mPhotoList);
+                            intent.putExtra(AppConstant.EXTRA_POSITION, position);
+                            intent.putExtra(AppConstant.EXTRA_CHANGE_SELECTED, false);
+                            startActivity(intent);
+                        } else {// 删除
+                            deletePhoto(position);
+                        }
+                        dialog.dismiss();
+                    }
+                });
+        builder.show();
+    }
+    private void deletePhoto(final int position) {
+        mPhotoList.remove(position);
+        mAdapter.notifyDataSetInvalidated();
+    }
+    private void takePhoto() {
+        mNewPhotoUri = CameraUtil.getOutputMediaFileUri(this, CameraUtil.MEDIA_TYPE_IMAGE);
+        CameraUtil.captureImage(this, mNewPhotoUri, REQUEST_CODE_CAPTURE_PHOTO);
+    }
+    private void selectPhoto() {
+        CameraUtil.pickImageSimple(this, REQUEST_CODE_PICK_PHOTO);
+    }
+    private class GridViewAdapter extends BaseAdapter {
+        @Override
+        public int getCount() {
+            if (mPhotoList.size() >= 9) {return 9;}
+            return mPhotoList.size() + 1;
+        }
+        @Override
+        public Object getItem(int position) {
+            return position;
+        }
+        @Override
+        public long getItemId(int position) {
+            return position;
+        }
+        @Override
+        public int getViewTypeCount() {
+            return 2;
+        }
+        @Override
+        public int getItemViewType(int position) {
+            if (mPhotoList.size() == 0) {
+                return 1;// View Type 1代表添加更多的视图
+            } else if (mPhotoList.size() < 9) {
+                if (position < mPhotoList.size()) {
+                    return 0;// View Type 0代表普通的ImageView视图
+                } else {
+                    return 1;
+                }
+            } else {
+                return 0;
+            }
+        }
+
+        @Override
+        public View getView(final int position, View convertView, ViewGroup parent) {
+            if (getItemViewType(position) == 0) {// 普通的视图
+                SquareCenterImageView imageView = new SquareCenterImageView(ct);
+                imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
+                String url = mPhotoList.get(position);
+                if (url == null) {
+                    url = "";
+                }
+                ImageLoader.getInstance().displayImage(Uri.fromFile(new File(url)).toString(), imageView);
+                return imageView;
+            } else {
+                View view = LayoutInflater.from(ct).inflate(R.layout.layout_circle_add_more_item,
+                        parent, false);
+                ImageView iconImageView = (ImageView) view.findViewById(R.id.icon_image_view);
+                TextView voiceTextTv = (TextView) view.findViewById(R.id.text_tv);
+                iconImageView.setBackgroundResource(R.drawable.add_picture);
+                voiceTextTv.setText(R.string.qzone_add_picture);
+                return view;
+            }
+        }
+
+    }
+}

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

@@ -176,7 +176,10 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Wo
     private OACalendarView calendarView;
     private String workDailyAdd;
     private long lastTime;
-
+    @ViewInject(R.id.release_switch_tv3)
+    private TextView release_switch_tv3;
+    @ViewInject(R.id.oamain_expense_reimbursement_ll)
+    private LinearLayout oamain_expense_reimbursement_ll;
     @Override
     public boolean onCreateOptionsMenu(Menu menu) {
         getMenuInflater().inflate(R.menu.menu_add_icon, menu);
@@ -277,6 +280,7 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Wo
         findViewById(R.id.my_log).setOnClickListener(this);
         findViewById(R.id.ok_scale).setOnClickListener(this);
         findViewById(R.id.oamain_sign_statistical_tv).setOnClickListener(this);
+        findViewById(R.id.oamain_expense_reimbursement_ll).setOnClickListener(this);
         mGetMoreMenuLl.setOnClickListener(this);
         mMoreMenuLl.setOnClickListener(this);
         mCancleMoreMenuLl.setOnClickListener(this);
@@ -385,6 +389,9 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Wo
 
             }
         });
+
+        // TODO 在这里写隐藏发布版本的事项
+        doReleaeSwitch();
     }
 
     private void initView() {
@@ -449,6 +456,17 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Wo
         }
         //获取动态表单caller
         loadOrdersCall();
+
+    }
+
+    private void doReleaeSwitch() {
+        if (CommonUtil.isReleaseVersion()){
+            release_switch_tv3.setVisibility(View.VISIBLE);
+            oamain_expense_reimbursement_ll.setVisibility(View.GONE);
+        }else {
+            release_switch_tv3.setVisibility(View.GONE);
+            oamain_expense_reimbursement_ll.setVisibility(View.VISIBLE);
+        }
     }
 
 
@@ -964,6 +982,9 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Wo
                 startActivity(new Intent(activity, StatisticsActivity.class));
                 PreferenceUtils.putInt(Constants.NEW_FUNCTION_NOTICE, 1);
                 break;
+            case R.id.oamain_expense_reimbursement_ll:
+                startActivity(new Intent(activity,ExpenseReimbursementActivity.class));
+                break;
         }
     }
 

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


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


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


+ 225 - 0
WeiChat/src/main/res/layout/activity_expense_reimbursement.xml

@@ -0,0 +1,225 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:whatever="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    >
+
+    <ScrollView
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:fillViewport="true">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="vertical">
+
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="10px"
+                android:background="@color/item_line" />
+
+            <RelativeLayout
+                style="@style/IMTbleLine2"
+                android:layout_height="40dp"
+                android:background="@color/white">
+
+                <TextView
+                    android:id="@+id/name_tv"
+                    style="@style/form_relative_left_text"
+                    android:layout_marginLeft="0dp"
+                    android:text="@string/common_title"
+                    android:textColor="@color/text_main"
+                    android:textSize="15sp" />
+
+                <com.andreabaccega.widget.FormEditText xmlns:editTextFormExample="http://schemas.android.com/apk/res-auto"
+                    android:id="@+id/reimbursement_title_fet"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_alignParentRight="true"
+                    android:layout_centerVertical="true"
+                    android:layout_marginLeft="10dp"
+                    android:layout_toRightOf="@+id/name_tv"
+                    android:background="@null"
+                    android:gravity="center_vertical|right"
+                    android:hint="请输入(必填)"
+                    android:padding="10dp"
+                    android:textColor="@color/dark_dark_grey"
+                    android:textSize="15sp"
+                    whatever:customRegexp="^[A-Za-z\u4e00-\u9fa5]{1,12}+$"
+                    whatever:testErrorString="请输入正确的中英文标题"
+                    whatever:testType="regexp" />
+
+                <ImageView
+                    style="@style/IMTbleLine_ArrowImg"
+                    android:layout_alignParentRight="true"
+                    android:contentDescription="@string/app_name" />
+            </RelativeLayout>
+
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="2px"
+                android:background="@color/item_line" />
+
+            <RelativeLayout
+                style="@style/IMTbleLine2"
+                android:layout_height="40dp"
+                android:background="@color/white">
+
+                <TextView
+                    style="@style/form_relative_left_text"
+                    android:layout_marginLeft="0dp"
+                    android:text="@string/Reimbursement_type"
+                    android:textColor="@color/text_main"
+                    android:textSize="15sp" />
+
+                <com.andreabaccega.widget.FormEditText xmlns:editTextFormExample="http://schemas.android.com/apk/res-auto"
+                    android:id="@+id/reimbursement_type_fet"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_alignParentRight="true"
+                    android:background="@null"
+                    android:gravity="center_vertical|right"
+                    android:hint="请选择(必选)"
+                    android:padding="10dp"
+                    android:textColor="@color/dark_dark_grey"
+                    android:textSize="15sp" />
+
+                <ImageView
+                    style="@style/IMTbleLine_ArrowImg"
+                    android:layout_alignParentRight="true"
+                    android:contentDescription="@string/app_name" />
+            </RelativeLayout>
+
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="2px"
+                android:background="@color/item_line" />
+
+            <RelativeLayout
+                android:id="@+id/ry_set_startTime"
+                style="@style/IMTbleLine2"
+                android:layout_height="40dp"
+                android:background="@color/white">
+
+
+                <TextView
+                    style="@style/form_relative_left_text"
+                    android:layout_marginLeft="0dp"
+                    android:text="币种"
+                    android:textColor="@color/text_main"
+                    android:textSize="15sp" />
+
+                <com.andreabaccega.widget.FormEditText xmlns:editTextFormExample="http://schemas.android.com/apk/res-auto"
+                    android:id="@+id/reimbursement_currency_fet"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_alignParentRight="true"
+                    android:layout_centerVertical="true"
+                    android:background="@null"
+                    android:gravity="center_vertical|right"
+                    android:hint="¥¥"
+                    android:padding="10dp"
+                    android:textColor="@color/dark_dark_grey"
+                    android:textSize="15sp" />
+
+                <ImageView
+                    style="@style/IMTbleLine_ArrowImg"
+                    android:layout_alignParentRight="true"
+                    android:contentDescription="@string/app_name" />
+            </RelativeLayout>
+
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="20px"
+                android:background="@color/item_line" />
+
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="2px"
+                android:background="@color/item_line" />
+
+            <RelativeLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:padding="10dp">
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="消费明细"
+                    android:textColor="@color/text_main" />
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_alignParentRight="true"
+                    android:text="+ 新增"
+                    android:textColor="@color/blue" />
+            </RelativeLayout>
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="100dp">
+
+            </LinearLayout>
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="20px"
+                android:background="@color/item_line" />
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="添加发票"
+                android:textColor="@color/text_main"
+                android:layout_marginLeft="10dp"
+                android:layout_marginTop="10dp"/>
+
+            <LinearLayout
+                android:id="@+id/select_img_layout"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:background="@color/white"
+                android:padding="10dp">
+
+                <com.xzjmyk.pm.activity.view.MyGridView
+                    android:id="@+id/grid_view"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:gravity="center"
+                    android:horizontalSpacing="3dp"
+                    android:listSelector="#00000000"
+                    android:numColumns="4"
+                    android:stretchMode="columnWidth"
+                    android:verticalSpacing="3dp" />
+            </LinearLayout>
+            <LinearLayout
+                android:id="@+id/bottom_layout"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_alignParentBottom="true"
+                android:baselineAligned="false"
+                android:gravity="bottom"
+                android:orientation="vertical"
+                android:padding="10dp"
+                android:visibility="visible">
+
+                <Button
+                    android:id="@+id/btn_save"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginLeft="20dp"
+                    android:layout_marginRight="20dp"
+                    android:layout_marginTop="10dp"
+                    android:background="@drawable/bg_bule_btn"
+                    android:padding="10dp"
+                    android:text="提交"
+                    android:textColor="@color/white"
+                    android:textSize="@dimen/text_main" />
+            </LinearLayout>
+        </LinearLayout>
+    </ScrollView>
+
+</RelativeLayout>

+ 48 - 2
WeiChat/src/main/res/layout/activity_oamain.xml

@@ -473,14 +473,60 @@
                             android:textColor="@color/white" />
                     </LinearLayout>
 
+
+                    <LinearLayout
+                        android:id="@+id/oamain_expense_reimbursement_ll"
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="2dp"
+                        android:layout_weight="1"
+                        android:orientation="vertical"
+                        android:paddingLeft="5dp"
+                        android:visibility="visible">
+
+                        <FrameLayout
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:layout_marginLeft="20dp">
+
+                            <ImageView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:background="@color/transparent"
+                                android:contentDescription="@string/app_name"
+                                android:padding="0dp"
+                                android:src="@drawable/reimbursement" />
+
+                            <TextView
+                                android:layout_width="10dp"
+                                android:layout_height="10dp"
+                                android:layout_gravity="top|right"
+                                android:layout_marginRight="15dp"
+                                android:background="@drawable/hongdian"
+                                android:textColor="@android:color/white"
+                                android:textSize="10.0dip"
+                                />
+                        </FrameLayout>
+
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_marginLeft="13dp"
+                            android:layout_marginTop="5dp"
+                            android:gravity="center"
+                            android:text="费用报销"
+                            android:textColor="@color/white" />
+                    </LinearLayout>
+
                     <TextView
+                        android:id="@+id/release_switch_tv3"
                         android:layout_width="0dp"
                         android:layout_height="wrap_content"
                         android:layout_marginTop="2dp"
                         android:layout_weight="1"
                         android:gravity="center"
-                        android:textColor="@color/white" />
-
+                        android:textColor="@color/white"
+                        android:visibility="gone"/>
                     <TextView
                         android:layout_width="0dp"
                         android:layout_height="wrap_content"

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

@@ -1466,4 +1466,6 @@
     <string name="change_style">换个样式</string>
     <string name="save_to_MBphone">保存到手机</string>
     <string name="scan_2dcode">扫描二维码</string>
+    <string name="common_title">标题</string>
+    <string name="Reimbursement_type">报销类型</string>
 </resources>

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

@@ -1718,4 +1718,6 @@
     </string-array>
     <string name="missing_card">缺卡</string>
     <string name="before_work">上班前</string>
+    <string name="common_title">标题</string>
+    <string name="Reimbursement_type">报销类型</string>
 </resources>