请假类型 假条
This commit is contained in:
parent
1f50369fbc
commit
b67589ca54
3
.idea/misc.xml
Executable file → Normal file
3
.idea/misc.xml
Executable file → Normal file
@ -1,4 +1,3 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="CMakeSettings">
|
||||
<configurations>
|
||||
@ -15,7 +14,7 @@
|
||||
</map>
|
||||
</option>
|
||||
</component>
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="corretto-1.8" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/build/classes" />
|
||||
</component>
|
||||
<component name="ProjectType">
|
||||
|
10
README.md
10
README.md
@ -40,4 +40,12 @@
|
||||
1.境外人员 字段变更
|
||||
2.去除案件检查时相片必填选项
|
||||
|
||||
```
|
||||
```
|
||||
|
||||
## 2023-6-16
|
||||
```
|
||||
> 1.4.6
|
||||
|
||||
1.请假 类型跟换数据字典 添加上传假条
|
||||
|
||||
```
|
||||
|
@ -10,8 +10,8 @@
|
||||
{
|
||||
"type": "SINGLE",
|
||||
"filters": [],
|
||||
"versionCode": 45,
|
||||
"versionName": "1.4.5",
|
||||
"versionCode": 46,
|
||||
"versionName": "1.4.6",
|
||||
"outputFile": "app-release.apk"
|
||||
}
|
||||
]
|
||||
|
@ -2,14 +2,12 @@ package com.sucstepsoft.realtimelocation.activitys.census.normal;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.app.ProgressDialog;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.support.v7.widget.LinearLayoutManager;
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.ExpandableListView;
|
||||
import android.widget.ImageView;
|
||||
|
||||
import com.jcodecraeer.xrecyclerview.ProgressStyle;
|
||||
@ -21,9 +19,6 @@ import com.sucstepsoft.cm_utils.utils.UIUtil;
|
||||
import com.sucstepsoft.cm_utils.utils.UserLgUtils;
|
||||
import com.sucstepsoft.realtimelocation.R;
|
||||
import com.sucstepsoft.realtimelocation.adapters.CensusPersonAdapter;
|
||||
import com.sucstepsoft.realtimelocation.adapters.LeaveHistoryAdapter;
|
||||
import com.sucstepsoft.realtimelocation.adapters.PersonAdapter;
|
||||
import com.sucstepsoft.realtimelocation.beans.LeaveListBean;
|
||||
import com.sucstepsoft.realtimelocation.beans.SuccessBean;
|
||||
import com.sucstepsoft.realtimelocation.beans.person.CensusPersonBean;
|
||||
import com.sucstepsoft.realtimelocation.net.LocationApiService;
|
||||
|
@ -2,9 +2,18 @@ package com.sucstepsoft.realtimelocation.activitys.mine;
|
||||
|
||||
import android.app.ProgressDialog;
|
||||
import android.content.Intent;
|
||||
import android.database.Cursor;
|
||||
import android.graphics.Color;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.os.Environment;
|
||||
import android.provider.MediaStore;
|
||||
import android.support.v4.content.FileProvider;
|
||||
import android.support.v7.widget.GridLayoutManager;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.text.Html;
|
||||
import android.text.TextUtils;
|
||||
import android.view.Gravity;
|
||||
import android.view.View;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
@ -14,19 +23,29 @@ import android.widget.TextView;
|
||||
import com.bigkoo.pickerview.builder.OptionsPickerBuilder;
|
||||
import com.bigkoo.pickerview.view.OptionsPickerView;
|
||||
import com.google.gson.Gson;
|
||||
import com.sucstepsoft.cm_utils.constant.PathConfig;
|
||||
import com.sucstepsoft.cm_utils.constant.TimeConstants;
|
||||
import com.sucstepsoft.cm_utils.core.beans.AddPhotoBean;
|
||||
import com.sucstepsoft.cm_utils.core.retrofit_net.BaseUrlApi;
|
||||
import com.sucstepsoft.cm_utils.core.retrofit_net.RetrofitManager;
|
||||
import com.sucstepsoft.cm_utils.core.widget.base.AddPhotoAdapter;
|
||||
import com.sucstepsoft.cm_utils.core.widget.base.BaseActivity;
|
||||
import com.sucstepsoft.cm_utils.core.widget.views.ButtomDialogView;
|
||||
import com.sucstepsoft.cm_utils.utils.ProiderUtil;
|
||||
import com.sucstepsoft.cm_utils.utils.TimeUtils;
|
||||
import com.sucstepsoft.cm_utils.utils.ToastUtils;
|
||||
import com.sucstepsoft.cm_utils.utils.UIUtil;
|
||||
import com.sucstepsoft.cm_utils.utils.UserLgUtils;
|
||||
import com.sucstepsoft.realtimelocation.R;
|
||||
import com.sucstepsoft.realtimelocation.activitys.common.PhotoActivity;
|
||||
import com.sucstepsoft.realtimelocation.beans.BaseUserBean;
|
||||
import com.sucstepsoft.realtimelocation.beans.LeavePostBean;
|
||||
import com.sucstepsoft.realtimelocation.beans.SuccessBean;
|
||||
import com.sucstepsoft.realtimelocation.beans.TypeListBean;
|
||||
import com.sucstepsoft.realtimelocation.net.LocationApiService;
|
||||
import com.sucstepsoft.realtimelocation.utils.ExceptionHandler;
|
||||
|
||||
import java.io.File;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@ -36,10 +55,14 @@ import butterknife.ButterKnife;
|
||||
import butterknife.Unbinder;
|
||||
import io.reactivex.Observer;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.annotations.NonNull;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
import io.reactivex.schedulers.Schedulers;
|
||||
import okhttp3.MediaType;
|
||||
import okhttp3.MultipartBody;
|
||||
import okhttp3.RequestBody;
|
||||
import top.zibin.luban.Luban;
|
||||
import top.zibin.luban.OnCompressListener;
|
||||
|
||||
public class LeaveActivity extends BaseActivity {
|
||||
|
||||
@ -74,8 +97,11 @@ public class LeaveActivity extends BaseActivity {
|
||||
EditText mEtLeCause;
|
||||
@BindView(R.id.btn_submit)
|
||||
Button mBtnSubmit;
|
||||
@BindView(R.id.tv_proof)
|
||||
TextView mTvProof;
|
||||
@BindView(R.id.rlv_photo)
|
||||
RecyclerView mRlvPhoto;
|
||||
private Unbinder mBind;
|
||||
private String mType = "";
|
||||
private String mStartTime = "";
|
||||
private float mStart = 0;
|
||||
private String amOrPm = "am";
|
||||
@ -83,6 +109,14 @@ public class LeaveActivity extends BaseActivity {
|
||||
private String mEndTime = "";
|
||||
private float mCount = 0.0f;
|
||||
private int startTimeAmOrPm = 0;
|
||||
private List<AddPhotoBean> mPhotos = new ArrayList<>();
|
||||
private AddPhotoBean mCurrentBean;
|
||||
private String mPicPath;
|
||||
private AddPhotoAdapter mPhotoAdapter;
|
||||
private String mPhotoIds = "";//相片Id
|
||||
private List<TypeListBean> mTypeList;
|
||||
private OptionsPickerView<TypeListBean> mTypePicker;
|
||||
private TypeListBean mSelType;
|
||||
|
||||
@Override
|
||||
protected int setLayoutId() {
|
||||
@ -102,10 +136,35 @@ public class LeaveActivity extends BaseActivity {
|
||||
mTvLeEndTitle.setText(Html.fromHtml(getResources().getString(R.string.leave_end)));
|
||||
mTvLeCountTitle.setText(Html.fromHtml(getResources().getString(R.string.leave_count)));
|
||||
mTvLeCause.setText(Html.fromHtml(getResources().getString(R.string.leave_cause)));
|
||||
mTvProof.setText(Html.fromHtml(getResources().getString(R.string.leave_proof)));
|
||||
mRlLeType.setOnClickListener(v -> choosePage(1));
|
||||
mRlLeStart.setOnClickListener(v -> choosePage(2));
|
||||
mRlLeEnd.setOnClickListener(v -> choosePage(3));
|
||||
mBtnSubmit.setOnClickListener(v -> doSubmit());
|
||||
|
||||
mPhotos.add(new AddPhotoBean());
|
||||
mPhotoAdapter = new AddPhotoAdapter(LeaveActivity.this, mPhotos);
|
||||
mRlvPhoto.setLayoutManager(new GridLayoutManager(mActivity, 4));
|
||||
mRlvPhoto.setAdapter(mPhotoAdapter);
|
||||
//删除上传的相片
|
||||
mPhotoAdapter.addOnDeleteListener(((bean, i) -> {
|
||||
mPhotoAdapter.removeItem(bean);
|
||||
mPhotoIds = mPhotoIds.replace(bean.getId() + ",", "");
|
||||
}));
|
||||
mPhotoAdapter.addOnItemClickListener(bean -> {
|
||||
if (TextUtils.isEmpty(bean.getPath())) {
|
||||
//空数据
|
||||
showSelectPhoto(bean);
|
||||
} else {
|
||||
//预览
|
||||
ArrayList<String> list = new ArrayList<>();
|
||||
list.add(bean.getPath());
|
||||
Intent intent = new Intent();
|
||||
intent.putExtra(PhotoActivity.TAG_IMGURL, list);
|
||||
intent.setClass(LeaveActivity.this, PhotoActivity.class);
|
||||
startActivity(intent);
|
||||
}
|
||||
});
|
||||
setEditTextInhibitInputSpeChat(mEtLeCause);
|
||||
}
|
||||
|
||||
@ -116,10 +175,24 @@ public class LeaveActivity extends BaseActivity {
|
||||
String cause = mEtLeCause.getText().toString().trim();
|
||||
LeavePostBean body = new LeavePostBean();
|
||||
body.setLeaveSummary(cause);
|
||||
body.setLeaveType(mType);
|
||||
body.setLeaveType(mSelType.getDictId());
|
||||
body.setLeaveTypeName(mSelType.getDictName());
|
||||
body.setLeaveTimeLong(mCount + "");
|
||||
body.setLeaveTime(mStartTime);
|
||||
body.setLeaveTimeApm(amOrPm);
|
||||
if (mPhotoAdapter.getData().size() >= 2) {
|
||||
String ids = "";
|
||||
for (int i = 0; i < mPhotoAdapter.getData().size(); i++) {
|
||||
if (!TextUtils.isEmpty(mPhotoAdapter.getData().get(i).getId())) {
|
||||
ids += mPhotoAdapter.getData().get(i).getId() + ",";
|
||||
}
|
||||
}
|
||||
if (ids.endsWith(",")) {
|
||||
ids = ids.substring(0, ids.length() - 1);
|
||||
}
|
||||
body.setLeaveImg(ids);
|
||||
}
|
||||
|
||||
Gson gson = new Gson();
|
||||
String obj = gson.toJson(body);
|
||||
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), obj);
|
||||
@ -158,8 +231,179 @@ public class LeaveActivity extends BaseActivity {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 显示选择图片
|
||||
*
|
||||
* @param bean
|
||||
*/
|
||||
private void showSelectPhoto(AddPhotoBean bean) {
|
||||
hideSoftKeyboard();
|
||||
ButtomDialogView buttomDialogView = new ButtomDialogView.DialogBuilder(mActivity)
|
||||
.setIsBackCancelable(true)
|
||||
.setIscancelable(true)
|
||||
.setShowLocation(Gravity.BOTTOM)
|
||||
.setIsShowFile(false)
|
||||
.build();
|
||||
buttomDialogView.addOnChoseListener(new ButtomDialogView.OnChoseListener() {
|
||||
@Override
|
||||
public void choseFile() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void choseAlbum() {
|
||||
mCurrentBean = bean;
|
||||
Intent intent = new Intent(Intent.ACTION_PICK, null);
|
||||
intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
|
||||
"image/*");
|
||||
startActivityForResult(intent, BaseUrlApi.PHOTO_REQUEST);
|
||||
buttomDialogView.dismiss();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void choseShoot() {
|
||||
mCurrentBean = bean;
|
||||
String pathStr = getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS).getAbsolutePath() + PathConfig.CATCH_PATH;
|
||||
mPicPath = pathStr + System.currentTimeMillis() + ".jpg";
|
||||
File file = new File(mPicPath);
|
||||
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
|
||||
// 下面这句指定调用相机拍照后的照片存储的路径
|
||||
Uri uri;
|
||||
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) {
|
||||
uri = Uri.fromFile(file);
|
||||
} else {
|
||||
uri = FileProvider.getUriForFile(mActivity, ProiderUtil.getFileProviderName(mActivity), file);
|
||||
}
|
||||
intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
|
||||
startActivityForResult(intent, BaseUrlApi.CAMERA_REQUEST);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loginOut() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void changePwd() {
|
||||
|
||||
}
|
||||
});
|
||||
buttomDialogView.show();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
if (resultCode == RESULT_OK) {
|
||||
switch (requestCode) {
|
||||
case BaseUrlApi.CAMERA_REQUEST://相机
|
||||
uploadImg(mPicPath, 1);
|
||||
break;
|
||||
case BaseUrlApi.PHOTO_REQUEST://相册
|
||||
try {
|
||||
if (data == null) return;
|
||||
Uri uri = data.getData();
|
||||
String[] proj = {MediaStore.Images.Media.DATA};
|
||||
Cursor cursor = managedQuery(uri, proj, null, null, null);
|
||||
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
|
||||
cursor.moveToFirst();
|
||||
String srcPath = cursor.getString(column_index);
|
||||
uploadImg(srcPath, 2);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 上传文件
|
||||
*
|
||||
* @param picPath
|
||||
*/
|
||||
private void uploadImg(String picPath, int src) {
|
||||
File file = new File(picPath);
|
||||
if (!file.exists()) {
|
||||
showToast("图片路径错误.");
|
||||
return;
|
||||
}
|
||||
ProgressDialog progressDialog = UIUtil.initDialog(mActivity, "正在上传...");
|
||||
progressDialog.show();
|
||||
String pathStr = getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS).getAbsolutePath() + PathConfig.CATCH_PATH;
|
||||
Luban.with(mActivity)
|
||||
.load(picPath)
|
||||
.ignoreBy(100)
|
||||
.setTargetDir(pathStr)
|
||||
.filter(path -> !(TextUtils.isEmpty(path) || path.toLowerCase().endsWith(".gif")))
|
||||
.setCompressListener(new OnCompressListener() {
|
||||
@Override
|
||||
public void onStart() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(File file) {
|
||||
RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), file);
|
||||
MultipartBody.Part body = MultipartBody.Part.createFormData("image", file.getName(), requestFile);
|
||||
RetrofitManager.getInstance()
|
||||
.create(LocationApiService.class)
|
||||
.uploadImage(body, UserLgUtils.getToken())
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(new Observer<BaseUserBean>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(BaseUserBean baseUserBean) {
|
||||
if (progressDialog != null && progressDialog.isShowing()) {
|
||||
progressDialog.dismiss();
|
||||
}
|
||||
ToastUtils.showShort("上传成功");
|
||||
mPhotoIds += (baseUserBean.getData() + ",");
|
||||
mCurrentBean.setId(baseUserBean.getData());
|
||||
mCurrentBean.setPath(picPath);
|
||||
if (mPhotos.size() < 4) {
|
||||
mPhotos.add(new AddPhotoBean());
|
||||
}
|
||||
mPhotoAdapter.notifyDataSetChanged();
|
||||
mCurrentBean = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
if (progressDialog != null && progressDialog.isShowing()) {
|
||||
progressDialog.dismiss();
|
||||
}
|
||||
ToastUtils.showShort("上传失败,请稍后重试.");
|
||||
if (file.exists()) {
|
||||
file.delete();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onComplete() {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
if (progressDialog.isShowing()) {
|
||||
progressDialog.dismiss();
|
||||
}
|
||||
ToastUtils.showShort("图片上传失败,请稍后重试");
|
||||
}
|
||||
})
|
||||
.launch();
|
||||
}
|
||||
|
||||
private boolean checkParams() {
|
||||
if (TextUtils.isEmpty(mType)) {
|
||||
if (mSelType == null) {
|
||||
ToastUtils.showShort("请选择请假类型");
|
||||
return false;
|
||||
}
|
||||
@ -176,6 +420,10 @@ public class LeaveActivity extends BaseActivity {
|
||||
ToastUtils.showShort("请输入请假事由");
|
||||
return false;
|
||||
}
|
||||
if (mPhotos.size() <= 1) {
|
||||
ToastUtils.showShort("请上传假条");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -193,6 +441,52 @@ public class LeaveActivity extends BaseActivity {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 字典
|
||||
*/
|
||||
private void getDicListByType(String pId, int i) {
|
||||
ProgressDialog dialog = UIUtil.initDialog(mActivity, "获取中...");
|
||||
dialog.show();
|
||||
RetrofitManager.getInstance()
|
||||
.create(LocationApiService.class)
|
||||
.getDictListAll(pId, UserLgUtils.getToken())
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(new Observer<List<TypeListBean>>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(@NonNull List<TypeListBean> typeListBeans) {
|
||||
dialog.dismiss();
|
||||
if (typeListBeans.size() > 0) {
|
||||
switch (i) {
|
||||
case 3://请假类型
|
||||
mTypeList = typeListBeans;
|
||||
showTypePicker();
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
ToastUtils.showShort("暂无数据");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(@NonNull Throwable e) {
|
||||
dialog.dismiss();
|
||||
ExceptionHandler.handleException(e);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onComplete() {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void showEndPicker() {
|
||||
if (TextUtils.isEmpty(mStartTime)) {
|
||||
ToastUtils.showShort("请选择开始时间");
|
||||
@ -348,29 +642,28 @@ public class LeaveActivity extends BaseActivity {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 请假类型
|
||||
*/
|
||||
private void showTypePicker() {
|
||||
List<String> types = new ArrayList<>();
|
||||
types.add("有病");
|
||||
types.add("有事");
|
||||
OptionsPickerView<String> mTypePicker = new OptionsPickerBuilder(LeaveActivity.this, (options1, options2, options3, v) -> {
|
||||
mType = types.get(options1);
|
||||
String s = types.get(options1);
|
||||
switch (s) {
|
||||
case "有病":
|
||||
mType = "ill";
|
||||
break;
|
||||
case "有事":
|
||||
mType = "busy";
|
||||
break;
|
||||
hideSoftKeyboard();
|
||||
if (mTypeList != null && mTypeList.size() > 0) {
|
||||
if (mTypePicker == null) {
|
||||
mTypePicker = new OptionsPickerBuilder(mActivity, (o1, o2, o3, v) -> {
|
||||
mSelType = mTypeList.get(o1);
|
||||
mTvLeTypeContent.setText(mSelType.getDictName());
|
||||
})
|
||||
.setTitleText("请选择请假类型")
|
||||
.setCancelColor(Color.parseColor("#1189FF"))
|
||||
.setSubmitColor(Color.parseColor("#1189FF"))
|
||||
.setTitleColor(Color.parseColor("#1189FF"))
|
||||
.build();
|
||||
mTypePicker.setPicker(mTypeList);
|
||||
}
|
||||
mTvLeTypeContent.setText(s);
|
||||
}).setTitleText("请选择请假类型")
|
||||
.setCancelColor(Color.parseColor("#1189FF"))
|
||||
.setSubmitColor(Color.parseColor("#1189FF"))
|
||||
.setTitleColor(Color.parseColor("#1189FF"))
|
||||
.build();
|
||||
mTypePicker.setPicker(types);
|
||||
mTypePicker.show();
|
||||
mTypePicker.show();
|
||||
} else {
|
||||
getDicListByType(PathConfig.DIC_LEAVE, 3);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -1,7 +1,9 @@
|
||||
package com.sucstepsoft.realtimelocation.activitys.mine;
|
||||
|
||||
import android.app.ProgressDialog;
|
||||
import android.os.Bundle;
|
||||
import android.content.Intent;
|
||||
import android.support.v7.widget.GridLayoutManager;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
import android.widget.Button;
|
||||
@ -10,23 +12,26 @@ import android.widget.LinearLayout;
|
||||
import android.widget.RelativeLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.alibaba.android.arouter.exception.HandlerException;
|
||||
import com.google.gson.Gson;
|
||||
import com.sucstepsoft.cm_utils.core.network.response.GsonResponseHandler;
|
||||
import com.sucstepsoft.cm_utils.core.retrofit_net.BaseUrlApi;
|
||||
import com.sucstepsoft.cm_utils.core.retrofit_net.RetrofitManager;
|
||||
import com.sucstepsoft.cm_utils.core.widget.base.BaseActivity;
|
||||
import com.sucstepsoft.cm_utils.core.widget.base.BaseShowPhotoAdapter;
|
||||
import com.sucstepsoft.cm_utils.utils.ToastUtils;
|
||||
import com.sucstepsoft.cm_utils.utils.UIUtil;
|
||||
import com.sucstepsoft.cm_utils.utils.UserLgUtils;
|
||||
import com.sucstepsoft.realtimelocation.R;
|
||||
import com.sucstepsoft.realtimelocation.activitys.common.PhotoActivity;
|
||||
import com.sucstepsoft.realtimelocation.beans.LeaveCheckBean;
|
||||
import com.sucstepsoft.realtimelocation.beans.LeaveDetailBean;
|
||||
import com.sucstepsoft.realtimelocation.beans.LeaveListBean;
|
||||
import com.sucstepsoft.realtimelocation.beans.LeavePostBean;
|
||||
import com.sucstepsoft.realtimelocation.beans.SuccessBean;
|
||||
import com.sucstepsoft.realtimelocation.net.LocationApiService;
|
||||
import com.sucstepsoft.realtimelocation.utils.ExceptionHandler;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
import butterknife.Unbinder;
|
||||
@ -82,6 +87,10 @@ public class LeaveDetailActivity extends BaseActivity {
|
||||
TextView mTvNeiron;
|
||||
@BindView(R.id.tv_le_qingren)
|
||||
TextView mTvQingRen;
|
||||
@BindView(R.id.rlv_photo)
|
||||
RecyclerView mRlvPhoto;
|
||||
@BindView(R.id.tv_hint)
|
||||
TextView mTvHint;
|
||||
private Unbinder mBind;
|
||||
private String mType;
|
||||
private LeaveDetailBean mDetailBean;
|
||||
@ -219,14 +228,34 @@ public class LeaveDetailActivity extends BaseActivity {
|
||||
break;
|
||||
}
|
||||
if (!TextUtils.isEmpty(leaveDetailBean.getLeaveType())) {
|
||||
switch (leaveDetailBean.getLeaveType()) {
|
||||
case "ill":
|
||||
mTvLeTypeContent.setText("有病");
|
||||
break;
|
||||
case "busy":
|
||||
mTvLeTypeContent.setText("有事");
|
||||
break;
|
||||
mTvLeTypeContent.setText(leaveDetailBean.getLeaveTypeName());
|
||||
}
|
||||
if (TextUtils.isEmpty(mDetailBean.getLeaveImg())) {
|
||||
mRlvPhoto.setVisibility(View.GONE);
|
||||
mTvHint.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
mTvHint.setVisibility(View.GONE);
|
||||
mRlvPhoto.setVisibility(View.VISIBLE);
|
||||
List<String> photos = new ArrayList<>();
|
||||
String[] split = mDetailBean.getLeaveImg().split(",");
|
||||
for (int i = 0; i < split.length; i++) {
|
||||
if (!TextUtils.isEmpty(split[i])) {
|
||||
photos.add(BaseUrlApi.BASE_IMG_URL + split[i]);
|
||||
}
|
||||
}
|
||||
BaseShowPhotoAdapter adapter = new BaseShowPhotoAdapter(mActivity, photos);
|
||||
mRlvPhoto.setLayoutManager(new GridLayoutManager(mActivity, 4) {
|
||||
@Override
|
||||
public boolean canScrollVertically() {
|
||||
return false;
|
||||
}
|
||||
});//禁止滑动
|
||||
mRlvPhoto.setAdapter(adapter);
|
||||
adapter.addOnItemClickListener(url -> {
|
||||
Intent intent = new Intent(LeaveDetailActivity.this, PhotoActivity.class);
|
||||
intent.putExtra("imgUrls", new ArrayList<>(adapter.getData()));
|
||||
startActivity(intent);
|
||||
});
|
||||
}
|
||||
} else {
|
||||
refreshView(STATE_LOAD_EMPTY);
|
||||
|
@ -48,14 +48,7 @@ public class LeaveHistoryAdapter extends BaseRecyclerAdapter<LeaveListBean.RowsB
|
||||
holder.mTvCount.setText(rowsBean.getLeaveTimeLong() + "天");
|
||||
holder.mTvPerson.setText(rowsBean.getLeaveUserName());
|
||||
if (!TextUtils.isEmpty(rowsBean.getLeaveType())) {
|
||||
switch (rowsBean.getLeaveType()) {
|
||||
case "ill"://有病
|
||||
holder.mTvType.setText("有病");
|
||||
break;
|
||||
case "busy":
|
||||
holder.mTvType.setText("有事");
|
||||
break;
|
||||
}
|
||||
holder.mTvType.setText(rowsBean.getLeaveTypeName());
|
||||
}
|
||||
holder.mTvTime.setText(rowsBean.getLeaveTime());
|
||||
switch (rowsBean.getLeaveState()) {
|
||||
|
@ -27,9 +27,27 @@ public class LeaveDetailBean {
|
||||
private String leaveTime;
|
||||
private String leaveTimeLong;
|
||||
private String leaveType;
|
||||
private String leaveTypeName;
|
||||
private String leaveTimeApm;
|
||||
private String leaveRefuseSummary;
|
||||
private String leaveUserName;
|
||||
private String leaveImg;
|
||||
|
||||
public String getLeaveTypeName() {
|
||||
return leaveTypeName;
|
||||
}
|
||||
|
||||
public void setLeaveTypeName(String leaveTypeName) {
|
||||
this.leaveTypeName = leaveTypeName;
|
||||
}
|
||||
|
||||
public String getLeaveImg() {
|
||||
return leaveImg;
|
||||
}
|
||||
|
||||
public void setLeaveImg(String leaveImg) {
|
||||
this.leaveImg = leaveImg;
|
||||
}
|
||||
|
||||
public String getLeaveUserName() {
|
||||
return leaveUserName;
|
||||
|
@ -60,6 +60,7 @@ public class LeaveListBean {
|
||||
private String leaveId;
|
||||
private String leaveTime;
|
||||
private String leaveType;
|
||||
private String leaveTypeName;
|
||||
private String leaveSummary;
|
||||
private String leaveTimeLong;
|
||||
private int leaveState;
|
||||
@ -67,6 +68,15 @@ public class LeaveListBean {
|
||||
private String approverName;
|
||||
private String leaveUserName;
|
||||
|
||||
|
||||
public String getLeaveTypeName() {
|
||||
return leaveTypeName;
|
||||
}
|
||||
|
||||
public void setLeaveTypeName(String leaveTypeName) {
|
||||
this.leaveTypeName = leaveTypeName;
|
||||
}
|
||||
|
||||
public String getLeaveUserName() {
|
||||
return leaveUserName;
|
||||
}
|
||||
|
@ -19,7 +19,25 @@ public class LeavePostBean {
|
||||
private String leaveTime;
|
||||
private String leaveTimeLong;
|
||||
private String leaveType;
|
||||
private String leaveTypeName;
|
||||
private String leaveTimeApm;
|
||||
private String leaveImg;
|
||||
|
||||
public String getLeaveTypeName() {
|
||||
return leaveTypeName;
|
||||
}
|
||||
|
||||
public void setLeaveTypeName(String leaveTypeName) {
|
||||
this.leaveTypeName = leaveTypeName;
|
||||
}
|
||||
|
||||
public String getLeaveImg() {
|
||||
return leaveImg;
|
||||
}
|
||||
|
||||
public void setLeaveImg(String leaveImg) {
|
||||
this.leaveImg = leaveImg;
|
||||
}
|
||||
|
||||
public String getLeaveTimeApm() {
|
||||
return leaveTimeApm;
|
||||
|
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
@ -176,6 +175,33 @@
|
||||
android:padding="5dp" />
|
||||
</LinearLayout>
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
android:background="@color/gray_line" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:padding="10dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_proof"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="5dp"
|
||||
android:layout_marginBottom="5dp"
|
||||
android:text="假条"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="16sp" />
|
||||
|
||||
<android.support.v7.widget.RecyclerView
|
||||
android:id="@+id/rlv_photo"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content" />
|
||||
</LinearLayout>
|
||||
|
||||
<Button
|
||||
android:id="@+id/btn_submit"
|
||||
android:layout_width="match_parent"
|
||||
|
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
@ -197,6 +196,46 @@
|
||||
android:padding="5dp" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="5dp"
|
||||
android:layout_marginBottom="5dp"
|
||||
android:background="@color/white"
|
||||
android:orientation="vertical"
|
||||
android:padding="10dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_proof"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="5dp"
|
||||
android:layout_marginBottom="5dp"
|
||||
android:text="假条"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="16sp" />
|
||||
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:minHeight="60dp">
|
||||
|
||||
<android.support.v7.widget.RecyclerView
|
||||
android:id="@+id/rlv_photo"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
tools:visibility="gone" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_hint"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerInParent="true"
|
||||
android:text="未上传假条" />
|
||||
</RelativeLayout>
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/ll_neirong"
|
||||
android:layout_width="match_parent"
|
||||
|
@ -22,6 +22,7 @@
|
||||
<string name="leave_end"><Data><![CDATA[<font size="16">结束时间</font><font color="#e60012" size="10"> * </font>]]></Data></string>
|
||||
<string name="leave_count"><Data><![CDATA[<font size="16">请假时长</font><font color="#e60012" size="10"> * </font>]]></Data></string>
|
||||
<string name="leave_cause"><Data><![CDATA[<font size="16">请假事由</font><font color="#e60012" size="10"> * </font>]]></Data></string>
|
||||
<string name="leave_proof"><Data><![CDATA[<font size="16">假条</font><font color="#e60012" size="10"> * </font>]]></Data></string>
|
||||
|
||||
|
||||
<string name="issue_appoint">下派人:%1$s</string>
|
||||
|
@ -61,8 +61,8 @@ ext {
|
||||
gTargetSdkVersion = 28
|
||||
// gVersionCode = 3
|
||||
// gVersionName = '1.0.3'
|
||||
gVersionCode=45
|
||||
gVersionName='1.4.5'
|
||||
gVersionCode=46
|
||||
gVersionName='1.4.6'
|
||||
//Router编译版本
|
||||
gRouterApiVersion = '1.4.1'
|
||||
gRouterCompileVersion = '1.2.2'
|
||||
|
@ -75,6 +75,7 @@ public class PathConfig {
|
||||
public static final String DIC_FOUR = "6f5fc00e-dfe2-4c7a-bb7b-114d54ad6fb8";//四史
|
||||
public static final String DIC_THREE = "34aefb4b-5918-4de7-a6b8-8e361f76c557";//三涉
|
||||
public static final String DIC_GROUP = "b30da878-2576-4e70-8a39-4eeee5ad9983";//小组组成
|
||||
public static final String DIC_LEAVE="f29299aa-0651-4346-845a-2f8bf8987778";//请假类型
|
||||
|
||||
public static final String DEFAULT_AREA_CODE = "0";//地区
|
||||
public static final String APP_VERSION_ID = "402e60d8-8270-4bb9-8850-83d30a39a53f";/* 包头版本一 */
|
||||
|
@ -10,7 +10,7 @@ import com.sucstepsoft.cm_utils.constant.PathConfig;
|
||||
public class BaseUrlApi {
|
||||
|
||||
public static final String IP = "http://219.147.99.164:8082/usercenter/"; /*正式统一用户*/
|
||||
// public static final String IP = "http://192.168.0.15:7021/usercenter/"; /*测试统一用户*/
|
||||
// public static final String IP = "http://192.168.0.15:7021/usercenter/"; /*测试统一用户*/
|
||||
// public static final String IP = "http://175.24.42.217:7000/usercenter/"; /*测试统一用户*/
|
||||
public static final String BASE_URL = IP;
|
||||
public static final String APP_VERSION = BASE_URL + "appCmVersionManagement/getAppVersion";
|
||||
@ -24,7 +24,7 @@ public class BaseUrlApi {
|
||||
public static final String BASE_IP = BASE_IP_P + "servicecity/";/*网格系统*/
|
||||
// public static final String BASE_IP = "http://192.168.0.109:8083/servicecity/";/*测试网格系统*/
|
||||
public static final String BASE_POPULATION_IP = BASE_IP_P + "population/";/*人口系统*/
|
||||
// public static final String BASE_POPULATION_IP = BASE_IP_P + ":7002/population/";/*人口系统*/
|
||||
// public static final String BASE_POPULATION_IP = "http://192.168.0.15:7023/population/";/*人口系统*/
|
||||
public static final String BASE_IMG_URL = BASE_IP + "route/file/downloadfile/true/";
|
||||
public static final String SOCKET_IP = BASE_IP_P + "social/appws";/*SocketIP*/
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user