实有汽车

This commit is contained in:
高健 2021-11-09 09:24:54 +08:00
parent 4404d735e3
commit 36bb5cfd8a
66 changed files with 6080 additions and 402 deletions

View File

@ -140,7 +140,7 @@ public class PathConfig {
public static final String DIC_ORG_TYPE = "9041ffbf-6fb6-4a0d-909b-92aff2d0f432";//社会组织类型
public static final String DIC_DANGER_TYPE = "c15f10cf-0e92-46b9-b5ba-98f6ebc1701e";//安全隐患类型
public static final String DIC_ENTERPRISE_TYPE = "5b50ab4c-70b1-47e8-a3a7-ab279f73b87d";//企业类型
public static final String DIC_CAR_TYPE = "8e696099-0bda-4f29-9c60-9449a8c89bf5";//车辆类型
//=============================主页按钮模块类型===========================
public static final String MODULE_CALL = "call";
public static final String MODULE_PRISON = "prison";
@ -324,6 +324,8 @@ public class PathConfig {
public static final String PATH_MODULE_COMMON_ACTIVITY_SEL_DEPT = "/modulecommon/activity/chooseDept";//部门选择接口
public static final String PATH_MODULE_COMMON_ACTIVITY_SEL_PERSON = "/modulecommon/activity/choosePerson";//人员选择
public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_REPORT = "/modulecommon/activity/incidentReport";//事件上报
public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_LOG = "/modulecommon/activity/incidentLog";//事件日志
public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_DONE = "/modulecommon/activity/incidentDone";//已办事件
public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_DETAIL = "/modulecommon/activity/incidentDetail";//事件详情
@ -522,12 +524,17 @@ public class PathConfig {
public static final String PATH_MODULE_GRID_ACTIVITY_COMPONENT_ADD = "/modulegrid/activity/componentAdd";//部件采集
public static final String PATH_MODULE_GRID_ACTIVITY_COMPONENT_EDIT = "/modulegrid/activity/componentEdit";//部件信息编辑
public static final String PATH_MODULE_GRID_ACTIVITY_COMPONENT_DETAIL = "/modulegrid/activity/componentDetail";//部件信息详情
public static final String PATH_MODULE_GRID_ACTIVITY_COMPONENT_SEL_DEPT = "/modulegrid/activity/componentSelDept";//选择组织机构
public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_REPORT = "/modulecommon/activity/incidentReport";//事件上报
//车辆管理
public static final String PATH_MODULE_GRID_ACTIVITY_CAR_MANAGE_LIST = "/modulegrid/activity/carManageList";//车辆管理列表
public static final String PATH_MODULE_GRID_ACTIVITY_CAR_MANAGE_ADD = "/modulegrid/activity/carManageAdd";//车辆信息添加
public static final String PATH_MODULE_GRID_ACTIVITY_CAR_MANAGE_EDIT = "/modulegrid/activity/carManageEdit";//车辆信息编辑
public static final String PATH_MODULE_GRID_ACTIVITY_CAR_MANAGE_DETAIL = "/modulegrid/activity/carManageDetail";//车辆信息详情
public static final String PATH_MODULE_GRID_ACTIVITY_CAR_PERSON_EDIT = "/modulegrid/activity/carPersonEdit";//车辆人员信息编辑
public static final String PATH_MODULE_GRID_ACTIVITY_WORK_LOCUS = "/modulegrid/activity/locusWork";//工作轨迹
/*=========================================中心端============================================*/
public static final String PATH_MODULE_COMMAND_ACTIVITY_INCIDENT_ACCEPT_LIST = "/modulecommand/activity/incidentAcceptList";//事件受理列表
public static final String PATH_MODULE_COMMAND_ACTIVITY_INCIDENT_ACCEPT_DETAIL = "/modulecommand/activity/incidentAcceptDetail";//事件受理

View File

@ -44,7 +44,7 @@ import java.io.IOException;
* =====================================
*/
public class JCameraView extends FrameLayout implements CameraInterface.CameraOpenOverCallback, SurfaceHolder
.Callback, CameraView {
.Callback, CameraView {
// private static final String TAG = "JCameraView";
//Camera状态机
@ -127,9 +127,9 @@ public class JCameraView extends FrameLayout implements CameraInterface.CameraOp
//get AttributeSet
TypedArray a = context.getTheme().obtainStyledAttributes(attrs, R.styleable.JCameraView, defStyleAttr, 0);
iconSize = a.getDimensionPixelSize(R.styleable.JCameraView_iconSize, (int) TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_SP, 35, getResources().getDisplayMetrics()));
TypedValue.COMPLEX_UNIT_SP, 35, getResources().getDisplayMetrics()));
iconMargin = a.getDimensionPixelSize(R.styleable.JCameraView_iconMargin, (int) TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_SP, 15, getResources().getDisplayMetrics()));
TypedValue.COMPLEX_UNIT_SP, 15, getResources().getDisplayMetrics()));
iconSrc = a.getResourceId(R.styleable.JCameraView_iconSrc, R.drawable.ic_camera);
iconLeft = a.getResourceId(R.styleable.JCameraView_iconLeft, 0);
iconRight = a.getResourceId(R.styleable.JCameraView_iconRight, 0);
@ -150,11 +150,11 @@ public class JCameraView extends FrameLayout implements CameraInterface.CameraOp
private void initView() {
setWillNotDraw(false);
View view = LayoutInflater.from(mContext).inflate(R.layout.camera_view, this);
mVideoView = (VideoView) view.findViewById(R.id.video_preview);
mPhoto = (ImageView) view.findViewById(R.id.image_photo);
mSwitchCamera = (ImageView) view.findViewById(R.id.image_switch);
mVideoView = view.findViewById(R.id.video_preview);
mPhoto = view.findViewById(R.id.image_photo);
mSwitchCamera = view.findViewById(R.id.image_switch);
mSwitchCamera.setImageResource(iconSrc);
mFlashLamp = (ImageView) view.findViewById(R.id.image_flash);
mFlashLamp = view.findViewById(R.id.image_flash);
setFlashRes();
mFlashLamp.setOnClickListener(v -> {
type_flash++;
@ -162,10 +162,10 @@ public class JCameraView extends FrameLayout implements CameraInterface.CameraOp
type_flash = TYPE_FLASH_AUTO;
setFlashRes();
});
mCaptureLayout = (CaptureLayout) view.findViewById(R.id.capture_layout);
mCaptureLayout = view.findViewById(R.id.capture_layout);
mCaptureLayout.setDuration(duration);
mCaptureLayout.setIconSrc(iconLeft, iconRight);
mFoucsView = (FoucsView) view.findViewById(R.id.fouce_view);
mFoucsView = view.findViewById(R.id.fouce_view);
mVideoView.getHolder().addCallback(this);
//切换摄像头
mSwitchCamera.setOnClickListener(v -> machine.swtich(mVideoView.getHolder(), screenProp));
@ -325,7 +325,7 @@ public class JCameraView extends FrameLayout implements CameraInterface.CameraOp
float point_2_Y = event.getY(1);
float result = (float) Math.sqrt(Math.pow(point_1_X - point_2_X, 2) + Math.pow(point_1_Y -
point_2_Y, 2));
point_2_Y, 2));
if (firstTouch) {
firstTouchLength = result;
@ -347,12 +347,7 @@ public class JCameraView extends FrameLayout implements CameraInterface.CameraOp
//对焦框指示器动画
private void setFocusViewWidthAnimation(float x, float y) {
machine.foucs(x, y, new CameraInterface.FocusCallback() {
@Override
public void focusSuccess() {
mFoucsView.setVisibility(INVISIBLE);
}
});
machine.foucs(x, y, () -> mFoucsView.setVisibility(INVISIBLE));
}
private void updateVideoViewSize(float videoWidth, float videoHeight) {
@ -476,7 +471,7 @@ public class JCameraView extends FrameLayout implements CameraInterface.CameraOp
mMediaPlayer.setVideoScalingMode(MediaPlayer.VIDEO_SCALING_MODE_SCALE_TO_FIT);
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mMediaPlayer.setOnVideoSizeChangedListener((mp, width, height) -> updateVideoViewSize(mMediaPlayer.getVideoWidth(), mMediaPlayer
.getVideoHeight()));
.getVideoHeight()));
mMediaPlayer.setOnPreparedListener(mp -> mMediaPlayer.start());
mMediaPlayer.setLooping(true);
mMediaPlayer.prepare();

View File

@ -27,6 +27,7 @@ public class ViewPageNavigatorAdapter extends CommonNavigatorAdapter {
public ViewPageNavigatorAdapter(Context ctx, List<String> titles, ViewPager2 vp) {
this.mTitles = titles;
this.mContext = ctx;
this.mVp = vp;
}
@Override

View File

@ -0,0 +1,184 @@
package com.tenlionsoft.baselib.core.widget.views;
import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.DisplayMetrics;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.TextView;
import com.bigkoo.pickerview.builder.TimePickerBuilder;
import com.bigkoo.pickerview.view.TimePickerView;
import com.hjq.toast.ToastUtils;
import com.tenlionsoft.baselib.R;
import com.tenlionsoft.baselib.utils.RegexUtils;
import com.tenlionsoft.baselib.utils.TimeUtils;
import androidx.appcompat.widget.SwitchCompat;
/**
* 作者 : Adam on 2018/7/23.
* 邮箱 : itgaojian@163.com
* 描述 : 添加汽车使用或所属人员
*/
public class AddCarPersonDialog extends Dialog {
private View view;
private Context context;
private EditText mEtName;
private EditText mEtIdCard;
private OnChangeListener mChangeListener;
private SwitchCompat mSwIsKey;
private int mIsKey = 0;
private TextView mTvStartDate;
private TextView mTvEndDate;
private EditText mEtPhone;
private AddCarPersonDialog(Context context) {
super(context, R.style.dialog_center_alpha);
this.context = context;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
view = LayoutInflater.from(context).inflate(R.layout.dialog_add_person_car, null);
setContentView(view);
setCancelable(false);
setCanceledOnTouchOutside(false);
mEtName = view.findViewById(R.id.et_name);
mEtIdCard = view.findViewById(R.id.et_id_card);
mEtPhone = view.findViewById(R.id.et_phone);
mTvStartDate = view.findViewById(R.id.tv_start_date);
mTvEndDate = view.findViewById(R.id.tv_end_date);
mSwIsKey = view.findViewById(R.id.sw_is_key);
mSwIsKey.setOnCheckedChangeListener((buttonView, isChecked) -> mIsKey = isChecked ? 1 : 0);
mTvStartDate.setOnClickListener(v -> onShowDate(1));
mTvEndDate.setOnClickListener(v -> onShowDate(2));
view.findViewById(R.id.tv_cancel).setOnClickListener(v -> this.dismiss());
view.findViewById(R.id.tv_confirm).setOnClickListener(v -> doConfirm());
view.findViewById(R.id.tv_both).setOnClickListener(v -> doBoth());
DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
Window window = this.getWindow();
window.setGravity(Gravity.CENTER);
window.setWindowAnimations(R.style.dialog_center_alpha);
WindowManager.LayoutParams params = window.getAttributes();
params.width = (int) (displayMetrics.widthPixels * 0.9);
params.height = WindowManager.LayoutParams.WRAP_CONTENT;
window.setAttributes(params);
window.setBackgroundDrawable(new ColorDrawable());
}
private void doBoth() {
if (checkParams()) {
if (mChangeListener != null) {
String name = mEtName.getText().toString().trim();
String idcard = mEtIdCard.getText().toString().trim();
String phone = mEtPhone.getText().toString().trim();
String startDate = mTvStartDate.getText().toString().trim();
String endDate = mTvEndDate.getText().toString().trim();
mChangeListener.doChange(name, idcard, phone, startDate, endDate, mIsKey + "", 2);
}
}
}
private void doConfirm() {
if (checkParams()) {
if (mChangeListener != null) {
String name = mEtName.getText().toString().trim();
String idcard = mEtIdCard.getText().toString().trim();
String phone = mEtPhone.getText().toString().trim();
String startDate = mTvStartDate.getText().toString().trim();
String endDate = mTvEndDate.getText().toString().trim();
mChangeListener.doChange(name, idcard, phone, startDate, endDate, mIsKey + "", 1);
}
}
}
private void onShowDate(int type) {
TimePickerView mTimePickerView = new TimePickerBuilder(context, (date, v) -> {
switch (type) {
case 1:
mTvStartDate.setText(TimeUtils.dateToString(date));
break;
case 2:
mTvEndDate.setText(TimeUtils.dateToString(date));
break;
}
})
.setTitleText("请选日期")
.setCancelColor(Color.parseColor("#1189FF"))
.setSubmitColor(Color.parseColor("#1189FF"))
.isDialog(true)
.setType(new boolean[]{true, true, true, false, false, false})
.setTitleColor(Color.parseColor("#1189FF"))
.build();
mTimePickerView.show();
}
public void HideSoftKeyBoardDialog(Activity activity) {
try {
InputMethodManager imm = (InputMethodManager) activity.getSystemService(activity.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.HIDE_NOT_ALWAYS, 0);
} catch (Exception ex) {
}
}
public void addOnChangeListener(OnChangeListener listener) {
this.mChangeListener = listener;
}
public interface OnChangeListener {
void doChange(String name, String idcard, String phone, String startTime, String endTime, String isUse, int type);
}
/**
* 校验参数
*/
private boolean checkParams() {
String originPwd = mEtName.getText().toString().trim();
if (TextUtils.isEmpty(originPwd)) {
ToastUtils.show("请输入姓名");
return false;
}
String idcard = mEtIdCard.getText().toString().trim();
if (TextUtils.isEmpty(idcard) || !RegexUtils.isIDNumber(idcard)) {
ToastUtils.show("请输入正确的身份证号码");
return false;
}
String phone = mEtPhone.getText().toString().trim();
if (TextUtils.isEmpty(phone) || !RegexUtils.isTel(phone)) {
ToastUtils.show("请输入合法的联系电话");
return false;
}
return true;
}
public static class DialogBuilder {
private Context mContext;
public DialogBuilder(Context context) {
this.mContext = context;
}
public AddCarPersonDialog build() {
return new AddCarPersonDialog(mContext);
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 449 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 989 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 350 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 787 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 670 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 495 B

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<animated-rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/ic_loading"
android:drawable="@drawable/ic_loading_blue"
android:duration="300"
android:fromDegrees="0.0"
android:pivotX="50.0%"
android:pivotY="50.0%"
android:duration = "300"
android:toDegrees="720.0" />

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_checkbox_check_cir" android:state_checked="true" />
<item android:drawable="@drawable/ic_checkbox_uncheck_cir" android:state_checked="false" />
<item android:drawable="@drawable/ic_checkbox_check_32" android:state_checked="true" />
<item android:drawable="@drawable/ic_checkbox_uncheck_32" android:state_checked="false" />
</selector>

View File

@ -0,0 +1,245 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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="wrap_content"
android:layout_margin="20dp"
android:background="@drawable/shp_rectangle_white_5"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="8dp"
android:text="人员添加"
android:textColor="@color/black"
android:textSize="18sp" />
<LinearLayout
style="@style/item_gray"
android:layout_marginTop="10dp">
<ImageView
style="@style/style_hint_star"
android:visibility="visible" />
<TextView
style="@style/item_title"
android:text="姓名" />
<View style="@style/vertical_line" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center">
<EditText
android:id="@+id/et_name"
style="@style/item_content"
android:gravity="left"
android:hint="请输入姓名"
android:inputType="text" />
</LinearLayout>
</LinearLayout>
<LinearLayout
style="@style/item_gray"
android:layout_marginTop="10dp">
<ImageView
style="@style/style_hint_star"
android:visibility="visible" />
<TextView
style="@style/item_title"
android:text="身份证号" />
<View style="@style/vertical_line" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center">
<EditText
android:id="@+id/et_id_card"
style="@style/item_content"
android:digits="@string/limit_id_card"
android:gravity="left"
android:hint="请输入身份证号码"
android:inputType="text" />
</LinearLayout>
</LinearLayout>
<LinearLayout
style="@style/item_gray"
android:layout_marginTop="10dp">
<ImageView
style="@style/style_hint_star"
android:visibility="visible" />
<TextView
style="@style/item_title"
android:text="联系电话" />
<View style="@style/vertical_line" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center">
<EditText
android:id="@+id/et_phone"
style="@style/item_content"
android:digits="@string/limit_phone"
android:gravity="left"
android:hint="请输入联系电话"
android:inputType="text" />
</LinearLayout>
</LinearLayout>
<LinearLayout
style="@style/item_gray"
android:layout_marginTop="10dp">
<ImageView
style="@style/style_hint_star"
android:visibility="invisible" />
<TextView
style="@style/item_title"
android:text="开始时间" />
<View style="@style/vertical_line" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center">
<TextView
android:id="@+id/tv_start_date"
style="@style/sel_text_arrow"
android:hint="请选择开始时间" />
</LinearLayout>
</LinearLayout>
<LinearLayout
style="@style/item_gray"
android:layout_marginTop="10dp">
<ImageView
style="@style/style_hint_star"
android:visibility="invisible" />
<TextView
style="@style/item_title"
android:text="结束时间" />
<View style="@style/vertical_line" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center">
<TextView
android:id="@+id/tv_end_date"
style="@style/sel_text_arrow"
android:hint="请选择结束时间" />
</LinearLayout>
</LinearLayout>
<LinearLayout
style="@style/item_gray"
android:layout_marginTop="10dp">
<ImageView
style="@style/style_hint_star"
android:visibility="visible" />
<TextView
style="@style/item_title"
android:text="是否使用" />
<View style="@style/vertical_line" />
<RelativeLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/sw_is_key"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:background="@drawable/switch_ios_track_selector"
android:switchMinWidth="40dp"
android:switchPadding="0dp"
android:textOff=""
android:textOn=""
app:showText="false"
app:splitTrack="false"
app:theme="@style/scstyle"
app:thumbTint="#00000000"
app:trackTint="#00000000" />
</RelativeLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:gravity="right"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="20dp"
android:clickable="true"
android:focusable="true"
android:padding="10dp"
android:text="取消"
android:textColor="@color/gray_text" />
<TextView
android:id="@+id/tv_confirm"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
android:focusable="true"
android:padding="10dp"
android:text="确定"
android:textColor="@color/text_blue" />
<TextView
android:id="@+id/tv_both"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
android:focusable="true"
android:padding="10dp"
android:text="同时添加"
android:textColor="@color/text_blue" />
</LinearLayout>
</LinearLayout>

View File

@ -57,11 +57,12 @@
<RelativeLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
android:layout_weight="1"
android:gravity="center_vertical">
<androidx.appcompat.widget.AppCompatRatingBar
android:id="@+id/arb_star"
style="?android:attr/ratingBarStyleSmall"
style="@style/rating_style"
android:layout_width="wrap_content"
android:layout_height="20dp"
android:layout_alignParentRight="true"

View File

@ -120,24 +120,30 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:orientation="horizontal">
android:gravity="right"
android:orientation="horizontal"
android:paddingRight="10dp">
<Button
android:id="@+id/btn_cancel"
android:layout_width="0dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@null"
android:minWidth="0dp"
android:minHeight="0dp"
android:padding="10dp"
android:text="取消"
android:textColor="@color/gray_text" />
<Button
android:id="@+id/btn_confirm"
android:layout_width="0dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_weight="1"
android:background="@null"
android:minWidth="0dp"
android:minHeight="0dp"
android:padding="10dp"
android:text="确定"
android:textColor="@color/text_blue" />
</LinearLayout>

View File

@ -33,25 +33,30 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:gravity="right"
android:orientation="horizontal">
<Button
android:id="@+id/btn_cancel"
android:layout_width="0dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/sel_btn_red_gray_re_5"
android:background="@null"
android:minWidth="0dp"
android:minHeight="0dp"
android:padding="10dp"
android:text="取消"
android:textColor="@color/white" />
android:textColor="@color/gray_text" />
<Button
android:id="@+id/btn_confirm"
android:layout_width="0dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_weight="1"
android:background="@drawable/sel_btn_blue_gray_re_5"
android:background="@null"
android:minWidth="0dp"
android:minHeight="0dp"
android:padding="10dp"
android:text="确定"
android:textColor="@color/white" />
android:textColor="@color/text_blue" />
</LinearLayout>
</LinearLayout>

View File

@ -50,25 +50,30 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:gravity="right"
android:orientation="horizontal">
<Button
android:id="@+id/btn_cancel"
android:layout_width="0dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/sel_btn_red_gray_re_5"
android:background="@null"
android:minWidth="0dp"
android:minHeight="0dp"
android:padding="10dp"
android:text="取消"
android:textColor="@color/white" />
android:textColor="@color/gray_text" />
<Button
android:id="@+id/btn_confirm"
android:layout_width="0dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_weight="1"
android:background="@drawable/sel_btn_blue_gray_re_5"
android:background="@null"
android:minWidth="0dp"
android:minHeight="0dp"
android:padding="10dp"
android:text="确定"
android:textColor="@color/white" />
android:textColor="@color/text_blue" />
</LinearLayout>
</LinearLayout>

View File

@ -29,8 +29,8 @@
<ProgressBar
android:id="@+id/pb_fragment_loading"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_width="50dp"
android:layout_height="50dp"
android:indeterminateBehavior="repeat"
android:indeterminateDrawable="@drawable/anim_loading" />

View File

@ -7,7 +7,7 @@
<string name="title_update">&#160;</string>
<string name="update_confirm">立即下载</string>
<string name="empty_data">暂无数据</string>
<string name="loading">正在加载..</string>
<string name="loading">加载中…</string>
<string name="loading_init">请输入查询的内容</string>
<string name="loading_error">内容加载失败</string>
<string name="check_imgurl">请检查图片地址</string>

View File

@ -521,6 +521,8 @@
<style name="rating_style" parent="Base.Widget.AppCompat.RatingBar.Small">
<item name="android:minHeight">20dp</item>
<item name="android:maxHeight">20dp</item>
<item name="android:gravity">center_vertical</item>
<item name="android:layout_gravity">center_vertical</item>
<item name="android:progressDrawable">@drawable/appraise_rating_bar</item>
</style>

View File

@ -25,12 +25,27 @@
<application
android:maxAspectRatio="2.4"
android:resizeableActivity="true">
<activity android:name=".activity.AddressUserDetailActivity"/>
<activity
android:name=".activity.AddressUserDetailActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".activity.AddressListSearchActivity"
android:theme="@style/FadeAnimActivity" />
<activity android:name=".activity.AddressListActivity" />
<activity android:name=".activity.ChatDemoActivity" />
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:theme="@style/FadeAnimActivity"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".activity.AddressListActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".activity.ChatDemoActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".keeplive.activity.OnePixeActivity"
android:launchMode="singleTask" />

View File

@ -25,13 +25,41 @@
<application
android:maxAspectRatio="2.4"
android:resizeableActivity="true">
<activity android:name=".activitys.incident.IncidentDeferExamineDetailActivity"></activity>
<activity android:name=".activitys.incident.IncidentDeferExamineListActivity" />
<activity android:name=".activitys.incident.DeptSelActivity" />
<activity android:name=".activitys.incident.IncidentDispatchDetailActivity" />
<activity android:name=".activitys.incident.IncidentDispatchListActivity" />
<activity android:name=".activitys.incident.IncidentAcceptDetailActivity" />
<activity android:name=".activitys.incident.IncidentAcceptListActivity" />
<activity
android:name=".activitys.incident.IncidentDeferExamineDetailActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".activitys.incident.IncidentDeferExamineListActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".activitys.incident.DeptSelActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".activitys.incident.IncidentDispatchDetailActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".activitys.incident.IncidentDispatchListActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".activitys.incident.IncidentAcceptDetailActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".activitys.incident.IncidentAcceptListActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
</application>
</manifest>

View File

@ -3,33 +3,123 @@
package="com.tengshisoft.commonmodule">
<application>
<activity android:name=".activitys.department.ChooseGridActivity"></activity>
<activity android:name=".activitys.cases.IncidentReturnRecordAddActivity" />
<activity android:name=".activitys.cases.IncidentReturnRecordActivity" />
<activity android:name=".activitys.cases.IncidentArchiveListActivity" />
<activity android:name=".activitys.MineCollectActivity" />
<activity
android:name=".activitys.department.ChooseGridActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".activitys.cases.IncidentReturnRecordAddActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".activitys.cases.IncidentReturnRecordActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".activitys.cases.IncidentArchiveListActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".activitys.MineCollectActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".activitys.repository.KnowLedgeDetailActivity"
android:exported="false" />
android:exported="false"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".activitys.repository.KnowLedgeListActivity"
android:exported="false" />
<activity android:name=".activitys.cases.IncidentDoneListActivity" />
<activity android:name=".activitys.cases.IncidentDetailActivity" />
<activity android:name=".activitys.logs.IncidentLogActivity" />
<activity android:name=".activitys.logs.StatisticsActivity" />
<activity android:name=".activitys.department.ChoosePersonActivity" />
<activity android:name=".activitys.department.ChooseDeptActivity" />
<activity android:name=".activitys.usercenter.UserCenterActivity" />
<activity android:name=".activitys.checkwork.MapDemoActivity" />
<activity android:name=".activitys.checkwork.CheckWorkActivity" />
<activity android:name=".activitys.cases.IncidentCheckDetailActivity" />
<activity android:name=".activitys.cases.IncidentCheckListActivity" />
<activity android:name=".activitys.cases.IncidentComponentSelActivity" />
<activity android:name=".activitys.cases.IncidentHandleListActivity" />
<activity android:name=".activitys.cases.IncidentHandleActivity" />
<activity android:name=".activitys.cases.IncidentListActivity" />
<activity android:name=".activitys.cases.IncidentReportActivity" />
android:exported="false"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".activitys.cases.IncidentDoneListActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".activitys.cases.IncidentDetailActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".activitys.logs.IncidentLogActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".activitys.logs.StatisticsActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".activitys.department.ChoosePersonActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".activitys.department.ChooseDeptActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".activitys.usercenter.UserCenterActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".activitys.checkwork.MapDemoActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".activitys.checkwork.CheckWorkActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".activitys.cases.IncidentCheckDetailActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".activitys.cases.IncidentCheckListActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".activitys.cases.IncidentComponentSelActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".activitys.cases.IncidentHandleListActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".activitys.cases.IncidentHandleActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".activitys.cases.IncidentListActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".activitys.cases.IncidentReportActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
</application>
</manifest>

View File

@ -231,15 +231,15 @@ public class IncidentReportActivity extends BaseActivity {
} else {
//播放视频
ARouter.getInstance()
.build(PathConfig.PATH_MODULE_PLAYER_SIMPLE_VIDEO)
.withString("url", mVideoPath)
.withString("title", "事件视频")
.navigation();
.build(PathConfig.PATH_MODULE_PLAYER_SIMPLE_VIDEO)
.withString("url", mVideoPath)
.withString("title", "事件视频")
.navigation();
}
});
mTvAddressSel.setOnClickListener(v -> ARouter.getInstance()
.build(PathConfig.PATH_MODULE_MAP_SEL_POINT)
.navigation(mActivity, 16));
.build(PathConfig.PATH_MODULE_MAP_SEL_POINT)
.navigation(mActivity, 16));
//录音
mArbAudio.setHasRecordPromission(true);
@ -249,11 +249,11 @@ public class IncidentReportActivity extends BaseActivity {
AnimationDrawable animationDrawable = (AnimationDrawable) mTvVoiceAnim.getBackground();
animationDrawable.start();
MediaManager.playSound(mAudioPath,
mp -> {
animationDrawable.selectDrawable(0);//显示动画第一帧
animationDrawable.stop();
MediaManager.destroy();
});
mp -> {
animationDrawable.selectDrawable(0);//显示动画第一帧
animationDrawable.stop();
MediaManager.destroy();
});
}
});
mIvDelAudio.setOnClickListener(v -> {
@ -267,6 +267,11 @@ public class IncidentReportActivity extends BaseActivity {
showSelectVideo();
} else {
//视频播放
ARouter.getInstance()
.build(PathConfig.PATH_MODULE_PLAYER_SIMPLE_VIDEO)
.withString("url", mVideoPath)
.withString("title", "视频")
.navigation();
}
});
//是否自处理
@ -278,10 +283,10 @@ public class IncidentReportActivity extends BaseActivity {
}
});
mTvComponent.setOnClickListener(v -> ARouter.getInstance()
.build(PathConfig.PATH_MODULE_COMMON_ACTIVITY_INCIDENT_SEL_COMPONENT)
.withBoolean("isSingle", true)
.withString("id", "123")
.navigation(mActivity, 13));
.build(PathConfig.PATH_MODULE_COMMON_ACTIVITY_INCIDENT_SEL_COMPONENT)
.withBoolean("isSingle", true)
.withString("id", "123")
.navigation(mActivity, 13));
mBtnSubmit.setOnClickListener(v -> doSubmit());
}
@ -294,34 +299,34 @@ public class IncidentReportActivity extends BaseActivity {
ProgressDialog dialog = UIUtil.initDialog(mActivity, "上报中...");
dialog.show();
RetrofitManager.getInstance()
.create(GridApis.class)
.doSaveCase(body, UserLgUtils.getToken())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<SuccessBean>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
.create(GridApis.class)
.doSaveCase(body, UserLgUtils.getToken())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<SuccessBean>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
}
}
@Override
public void onNext(@NonNull SuccessBean successBean) {
dialog.dismiss();
ToastUtils.show("上报成功");
finish();
}
@Override
public void onNext(@NonNull SuccessBean successBean) {
dialog.dismiss();
ToastUtils.show("上报成功");
finish();
}
@Override
public void onError(@NonNull Throwable e) {
dialog.dismiss();
ExceptionHandler.handleException(e);
}
@Override
public void onError(@NonNull Throwable e) {
dialog.dismiss();
ExceptionHandler.handleException(e);
}
@Override
public void onComplete() {
@Override
public void onComplete() {
}
});
}
});
}
}
@ -330,9 +335,9 @@ public class IncidentReportActivity extends BaseActivity {
*/
private void onShowArea() {
AreaChooseDialog dialog = new AreaChooseDialog
.DialogBuilder(mActivity)
.setDefault(true)
.build();
.DialogBuilder(mActivity)
.setDefault(true)
.build();
dialog.addOnChoseListener((names, id, code) -> {
mSelAreaCode = code;
mSelAreaId = id;
@ -426,11 +431,11 @@ public class IncidentReportActivity extends BaseActivity {
*/
private void showSelectPhoto(AddPhotoBean bean) {
ButtomDialogView buttomDialogView = new ButtomDialogView.DialogBuilder(mActivity)
.setIsBackCancelable(true)
.setIscancelable(true)
.setShowLocation(Gravity.BOTTOM)
.setIsShowFile(false)
.build();
.setIsBackCancelable(true)
.setIscancelable(true)
.setShowLocation(Gravity.BOTTOM)
.setIsShowFile(false)
.build();
buttomDialogView.addOnChoseListener(new ButtomDialogView.OnChoseListener() {
@Override
public void choseFile() {
@ -441,7 +446,7 @@ public class IncidentReportActivity extends BaseActivity {
mCurrentBean = bean;
Intent intent = new Intent(Intent.ACTION_PICK, null);
intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
"image/*");
"image/*");
startActivityForResult(intent, BaseUrlApi.PHOTO_REQUEST);
buttomDialogView.dismiss();
}
@ -450,10 +455,10 @@ public class IncidentReportActivity extends BaseActivity {
public void choseShoot() {
mCurrentBean = bean;
ARouter.getInstance()
.build(PathConfig.PATH_MODULE_BASELIB_TAKE_PHOTO)
.withString("path", getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS).getPath())
.withString("type", "photo")
.navigation(mActivity, BaseUrlApi.CAMERA_REQUEST);
.build(PathConfig.PATH_MODULE_BASELIB_TAKE_PHOTO)
.withString("path", getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS).getPath())
.withString("type", "photo")
.navigation(mActivity, BaseUrlApi.CAMERA_REQUEST);
buttomDialogView.dismiss();
}
@ -475,11 +480,11 @@ public class IncidentReportActivity extends BaseActivity {
*/
private void showSelectVideo() {
ButtomDialogView buttomDialogView = new ButtomDialogView.DialogBuilder(mActivity)
.setIsBackCancelable(true)
.setIscancelable(true)
.setShowLocation(Gravity.BOTTOM)
.setIsShowFile(false)
.build();
.setIsBackCancelable(true)
.setIscancelable(true)
.setShowLocation(Gravity.BOTTOM)
.setIsShowFile(false)
.build();
buttomDialogView.addOnChoseListener(new ButtomDialogView.OnChoseListener() {
@Override
public void choseFile() {
@ -489,7 +494,7 @@ public class IncidentReportActivity extends BaseActivity {
public void choseAlbum() {
Intent intent = new Intent(Intent.ACTION_PICK, null);
intent.setDataAndType(MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
"video/*");
"video/*");
startActivityForResult(intent, BaseUrlApi.CAMERA_REQUEST_PHOTO);
buttomDialogView.dismiss();
}
@ -497,10 +502,10 @@ public class IncidentReportActivity extends BaseActivity {
@Override
public void choseShoot() {
ARouter.getInstance()
.build(PathConfig.PATH_MODULE_BASELIB_TAKE_PHOTO)
.withString("path", getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS).getPath())
.withString("type", "video")
.navigation(mActivity, BaseUrlApi.CAMERA_REQUEST_VIDEO);
.build(PathConfig.PATH_MODULE_BASELIB_TAKE_PHOTO)
.withString("path", getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS).getPath())
.withString("type", "video")
.navigation(mActivity, BaseUrlApi.CAMERA_REQUEST_VIDEO);
buttomDialogView.dismiss();
}
@ -577,10 +582,10 @@ public class IncidentReportActivity extends BaseActivity {
mBitMap = BitmapDescriptorFactory.fromResource(R.drawable.ic_map_location_marker);
}
MarkerOptions markerOptions = new MarkerOptions()
.position(new LatLng(mCurLoction.getLatitude(), mCurLoction.getLongitude()))//mark出现的位置
.icon(mBitMap) //mark图标
.draggable(false)//mark可拖拽
.animateType(MarkerOptions.MarkerAnimateType.none);
.position(new LatLng(mCurLoction.getLatitude(), mCurLoction.getLongitude()))//mark出现的位置
.icon(mBitMap) //mark图标
.draggable(false)//mark可拖拽
.animateType(MarkerOptions.MarkerAnimateType.none);
mBaiduMap.addOverlay(markerOptions);
}
}
@ -634,42 +639,42 @@ public class IncidentReportActivity extends BaseActivity {
RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), file);
MultipartBody.Part body = MultipartBody.Part.createFormData("video", file.getName(), requestFile);
RetrofitManager.getInstance()
.create(BaseApiService.class)
.uploadVideo(body, UserLgUtils.getToken())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<BaseSuccessBean>() {
@Override
public void onSubscribe(Disposable d) {
.create(BaseApiService.class)
.uploadVideo(body, UserLgUtils.getToken())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<BaseSuccessBean>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(BaseSuccessBean baseUserBean) {
if (progressDialog.isShowing()) {
progressDialog.dismiss();
}
ToastUtils.show("上传成功");
mVideoPath = videoPath;
mVideoId = baseUserBean.getData();
mIvDelVideo.setVisibility(View.VISIBLE);
mIvPlayVideo.setBackgroundResource(R.drawable.ic_play_white_icon);
}
@Override
public void onNext(BaseSuccessBean baseUserBean) {
if (progressDialog.isShowing()) {
progressDialog.dismiss();
}
ToastUtils.show("上传成功");
mVideoPath = videoPath;
mVideoId = baseUserBean.getData();
mIvDelVideo.setVisibility(View.VISIBLE);
mIvPlayVideo.setBackgroundResource(R.drawable.ic_play_white_icon);
@Override
public void onError(Throwable e) {
if (progressDialog.isShowing()) {
progressDialog.dismiss();
}
ExceptionHandler.handleException(e);
@Override
public void onError(Throwable e) {
if (progressDialog.isShowing()) {
progressDialog.dismiss();
}
ExceptionHandler.handleException(e);
}
}
@Override
public void onComplete() {
@Override
public void onComplete() {
}
});
}
});
} else {
progressDialog.dismiss();
ToastUtils.show("视频文件路径有误.");
@ -689,45 +694,45 @@ public class IncidentReportActivity extends BaseActivity {
RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), file);
MultipartBody.Part body = MultipartBody.Part.createFormData("audio", file.getName(), requestFile);
RetrofitManager.getInstance()
.create(BaseApiService.class)
.uploadAudio(body, UserLgUtils.getToken())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<BaseSuccessBean>() {
@Override
public void onSubscribe(Disposable d) {
.create(BaseApiService.class)
.uploadAudio(body, UserLgUtils.getToken())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<BaseSuccessBean>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(BaseSuccessBean baseUserBean) {
if (progressDialog.isShowing()) {
progressDialog.dismiss();
}
ToastUtils.show("上传成功");
mAudioPath = filePath;
mAudioId = baseUserBean.getData();
mTvVoiceAnim.setVisibility(View.VISIBLE);
mIvDelAudio.setVisibility(View.VISIBLE);
mArbAudio.setVisibility(View.GONE);
}
@Override
public void onNext(BaseSuccessBean baseUserBean) {
if (progressDialog.isShowing()) {
progressDialog.dismiss();
}
ToastUtils.show("上传成功");
mAudioPath = filePath;
mAudioId = baseUserBean.getData();
mTvVoiceAnim.setVisibility(View.VISIBLE);
mIvDelAudio.setVisibility(View.VISIBLE);
mArbAudio.setVisibility(View.GONE);
@Override
public void onError(Throwable e) {
if (progressDialog.isShowing()) {
progressDialog.dismiss();
}
mTvVoiceAnim.setVisibility(View.GONE);
mIvDelAudio.setVisibility(View.GONE);
mArbAudio.setVisibility(View.VISIBLE);
ExceptionHandler.handleException(e);
}
@Override
public void onError(Throwable e) {
if (progressDialog.isShowing()) {
progressDialog.dismiss();
}
mTvVoiceAnim.setVisibility(View.GONE);
mIvDelAudio.setVisibility(View.GONE);
mArbAudio.setVisibility(View.VISIBLE);
ExceptionHandler.handleException(e);
}
@Override
public void onComplete() {
@Override
public void onComplete() {
}
});
}
});
} else {
progressDialog.dismiss();
ToastUtils.show("录音文件路径有误.");
@ -751,45 +756,45 @@ public class IncidentReportActivity extends BaseActivity {
RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), file);
MultipartBody.Part body = MultipartBody.Part.createFormData("image", file.getName(), requestFile);
RetrofitManager.getInstance()
.create(BaseApiService.class)
.uploadImage(body, UserLgUtils.getToken())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<BaseSuccessBean>() {
@Override
public void onSubscribe(Disposable d) {
.create(BaseApiService.class)
.uploadImage(body, UserLgUtils.getToken())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<BaseSuccessBean>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(BaseSuccessBean baseUserBean) {
if (progressDialog != null && progressDialog.isShowing()) {
progressDialog.dismiss();
}
@Override
public void onNext(BaseSuccessBean baseUserBean) {
if (progressDialog != null && progressDialog.isShowing()) {
progressDialog.dismiss();
}
ToastUtils.show("上传成功");
mPhotoIds += (baseUserBean.getData() + ",");
mCurrentBean.setId(baseUserBean.getData());
mCurrentBean.setPath(picPath);
if (mPhotos.size() < 4) {
mPhotos.add(new AddPhotoBean());
}
mAddPhotoAdapter.notifyDataSetChanged();
mCurrentBean = null;
ToastUtils.show("上传成功");
mPhotoIds += (baseUserBean.getData() + ",");
mCurrentBean.setId(baseUserBean.getData());
mCurrentBean.setPath(picPath);
if (mPhotos.size() < 4) {
mPhotos.add(new AddPhotoBean());
}
mAddPhotoAdapter.notifyDataSetChanged();
mCurrentBean = null;
}
@Override
public void onError(Throwable e) {
if (progressDialog != null && progressDialog.isShowing()) {
progressDialog.dismiss();
}
ExceptionHandler.handleException(e);
@Override
public void onError(Throwable e) {
if (progressDialog != null && progressDialog.isShowing()) {
progressDialog.dismiss();
}
ExceptionHandler.handleException(e);
}
@Override
public void onComplete() {
@Override
public void onComplete() {
}
});
}
});
}
/**
@ -814,11 +819,11 @@ public class IncidentReportActivity extends BaseActivity {
mTvType.setText(bean.getName());
}
})
.setTitleText("请选择")
.setCancelColor(Color.parseColor("#1189FF"))
.setSubmitColor(Color.parseColor("#1189FF"))
.setTitleColor(Color.parseColor("#1189FF"))
.build();
.setTitleText("请选择")
.setCancelColor(Color.parseColor("#1189FF"))
.setSubmitColor(Color.parseColor("#1189FF"))
.setTitleColor(Color.parseColor("#1189FF"))
.build();
mTypePicker.setPicker(mTypeList, mTypeSubList);
}
mTypePicker.show();
@ -834,38 +839,38 @@ public class IncidentReportActivity extends BaseActivity {
ProgressDialog dialog = UIUtil.initDialog(mActivity, "获取中...");
dialog.show();
RetrofitManager.getInstance()
.create(GridApis.class)
.getCaseTypeListAll(UserLgUtils.getToken())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<List<CaseTypeBean>>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
.create(GridApis.class)
.getCaseTypeListAll(UserLgUtils.getToken())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<List<CaseTypeBean>>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onNext(@NonNull List<CaseTypeBean> componentTypeBeans) {
dialog.dismiss();
if (componentTypeBeans != null && componentTypeBeans.size() > 0) {
mTypeList = componentTypeBeans;
buildTypeSubBean();
} else {
ToastUtils.show("暂无数据");
}
}
@Override
public void onNext(@NonNull List<CaseTypeBean> componentTypeBeans) {
dialog.dismiss();
if (componentTypeBeans != null && componentTypeBeans.size() > 0) {
mTypeList = componentTypeBeans;
buildTypeSubBean();
} else {
ToastUtils.show("暂无数据");
}
}
@Override
public void onError(@NonNull Throwable e) {
dialog.dismiss();
ExceptionHandler.handleException(e);
}
@Override
public void onError(@NonNull Throwable e) {
dialog.dismiss();
ExceptionHandler.handleException(e);
}
@Override
public void onComplete() {
@Override
public void onComplete() {
}
});
}
});
}
private void buildTypeSubBean() {

View File

@ -0,0 +1,71 @@
package com.tengshisoft.commonmodule.adapters;
import android.content.Context;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.bumptech.glide.Glide;
import com.tengshisoft.commonmodule.R;
import com.tengshisoft.commonmodule.beans.CarBelongPersonListBean;
import com.tengshisoft.commonmodule.beans.CarListBean;
import com.tengshisoft.commonmodule.beans.PenalListBean;
import com.tengshisoft.commonmodule.holders.CarBelongPersonHolder;
import com.tengshisoft.commonmodule.holders.CarListHolder;
import com.tenlionsoft.baselib.core.retrofit_net.BaseUrlApi;
import com.tenlionsoft.baselib.core.widget.base.BaseRecyclerAdapter;
import com.tenlionsoft.baselib.utils.IDCard;
import java.util.List;
/**
* 作者: adam
* 日期: 2021/9/26 - 3:01 下午
* 邮箱: itgaojian@163.com
* 描述: 汽车-所属人
*/
public class CarBelongPersonAdapter extends BaseRecyclerAdapter<CarBelongPersonListBean.RowsBean, CarBelongPersonHolder> {
public CarBelongPersonAdapter(Context ctx, List<CarBelongPersonListBean.RowsBean> list) {
super(ctx, list);
}
@Override
public CarBelongPersonHolder createHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(mContext).inflate(R.layout.item_car_person, parent, false);
return new CarBelongPersonHolder(itemView);
}
@Override
public void bindHolder(CarBelongPersonHolder holder, int i) {
CarBelongPersonListBean.RowsBean bean = mData.get(i);
holder.mTvName.setText(bean.getBelongName());
holder.mTvTime.setText("开始时间:" + bean.getBelongStartTime() + "-结束时间:" + bean.getBelongEndTime());
holder.mTvPhone.setText("联系电话:" + bean.getBelongPhone());
holder.mTvIdCard.setText("身份证号:" + IDCard.idMask(bean.getBelongIdCard(), 10, 4));
if (1 == bean.getIsUse()) {
holder.mTvState.setText("正在使用");
} else {
holder.mTvState.setText("未使用");
}
if (mPatrolListener != null) {
holder.mBtnDel.setOnClickListener(v -> mPatrolListener.onDel(bean, i));
holder.mBtnEdit.setOnClickListener(v -> mPatrolListener.onEdit(bean, i));
}
}
private OnEditOrDel mPatrolListener;
public void addOnPatrolListener(OnEditOrDel listener) {
this.mPatrolListener = listener;
}
public interface OnEditOrDel {
void onEdit(CarBelongPersonListBean.RowsBean bean, int pos);
void onDel(CarBelongPersonListBean.RowsBean bean, int pos);
}
}

View File

@ -1,13 +1,18 @@
package com.tengshisoft.commonmodule.adapters;
import android.content.Context;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.bumptech.glide.Glide;
import com.tengshisoft.commonmodule.R;
import com.tengshisoft.commonmodule.beans.CarListBean;
import com.tengshisoft.commonmodule.beans.PenalListBean;
import com.tengshisoft.commonmodule.holders.CarListHolder;
import com.tengshisoft.commonmodule.holders.PenalListHolder;
import com.tenlionsoft.baselib.core.retrofit_net.BaseUrlApi;
import com.tenlionsoft.baselib.core.widget.base.BaseRecyclerAdapter;
import java.util.List;
@ -18,21 +23,38 @@ import java.util.List;
* 邮箱: itgaojian@163.com
* 描述: 汽车
*/
public class CarListAdapter extends BaseRecyclerAdapter<PenalListBean.RowsBean, PenalListHolder> {
public class CarListAdapter extends BaseRecyclerAdapter<CarListBean.RowsBean, CarListHolder> {
public CarListAdapter(Context ctx, List<PenalListBean.RowsBean> list) {
public CarListAdapter(Context ctx, List<CarListBean.RowsBean> list) {
super(ctx, list);
}
@Override
public PenalListHolder createHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(mContext).inflate(R.layout.item_penal_list, parent, false);
return new PenalListHolder(itemView);
public CarListHolder createHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(mContext).inflate(R.layout.item_car_list, parent, false);
return new CarListHolder(itemView);
}
@Override
public void bindHolder(PenalListHolder holder, int i) {
PenalListBean.RowsBean bean = mData.get(i);
public void bindHolder(CarListHolder holder, int i) {
CarListBean.RowsBean bean = mData.get(i);
holder.mTvNumber.setText(bean.getCarNumber());
holder.mTvUser.setText("车辆名称:" + bean.getCarName());
holder.mTvPhone.setText("车辆类型:" + bean.getCarTypeName());
holder.mTvAddress.setText(bean.getAreaName());
if (!TextUtils.isEmpty(bean.getCarPhotos())) {
String[] split = bean.getCarPhotos().split(",");
String s = BaseUrlApi.BASE_IMG_URL + split[0];
Glide.with(mContext)
.load(s)
.apply(options)
.into(holder.mIvPic);
} else {
Glide.with(mContext)
.load(R.drawable.ic_incident_default)
.apply(options)
.into(holder.mIvPic);
}
}
private OnEditOrDel mPatrolListener;

View File

@ -0,0 +1,68 @@
package com.tengshisoft.commonmodule.adapters;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.tengshisoft.commonmodule.R;
import com.tengshisoft.commonmodule.beans.CarBelongPersonListBean;
import com.tengshisoft.commonmodule.beans.CarUsePersonListBean;
import com.tengshisoft.commonmodule.beans.PenalListBean;
import com.tengshisoft.commonmodule.holders.CarBelongPersonHolder;
import com.tengshisoft.commonmodule.holders.CarUsePersonHolder;
import com.tenlionsoft.baselib.core.widget.base.BaseRecyclerAdapter;
import com.tenlionsoft.baselib.utils.IDCard;
import java.util.List;
/**
* 作者: adam
* 日期: 2021/9/26 - 3:01 下午
* 邮箱: itgaojian@163.com
* 描述: 汽车-使用人
*/
public class CarUsePersonAdapter extends BaseRecyclerAdapter<CarUsePersonListBean.RowsBean, CarUsePersonHolder> {
public CarUsePersonAdapter(Context ctx, List<CarUsePersonListBean.RowsBean> list) {
super(ctx, list);
}
@Override
public CarUsePersonHolder createHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(mContext).inflate(R.layout.item_car_person, parent, false);
return new CarUsePersonHolder(itemView);
}
@Override
public void bindHolder(CarUsePersonHolder holder, int i) {
CarUsePersonListBean.RowsBean bean = mData.get(i);
holder.mTvName.setText(bean.getUserName());
holder.mTvTime.setText("开始时间:" + bean.getUseStartTime() + "-结束时间:" + bean.getUseEndTime());
holder.mTvPhone.setText("联系电话:" + bean.getUserPhone());
holder.mTvIdCard.setText("身份证号:" + IDCard.idMask(bean.getUserIdCard(), 10, 4));
if (1 == bean.getIsUse()) {
holder.mTvState.setText("正在使用");
} else {
holder.mTvState.setText("未使用");
}
if (mPatrolListener != null) {
holder.mBtnDel.setOnClickListener(v -> mPatrolListener.onDel(bean, i));
holder.mBtnEdit.setOnClickListener(v -> mPatrolListener.onEdit(bean, i));
}
}
private OnEditOrDel mPatrolListener;
public void addOnPatrolListener(OnEditOrDel listener) {
this.mPatrolListener = listener;
}
public interface OnEditOrDel {
void onEdit(CarUsePersonListBean.RowsBean bean, int pos);
void onDel(CarUsePersonListBean.RowsBean bean, int pos);
}
}

View File

@ -58,7 +58,7 @@ public class IncidentListAdapter extends BaseRecyclerAdapter<IncidentListBean.Ro
holder.mTvTime.setText("上报时间:" + bean.getGmtCreate());
holder.mTvAddress.setText(bean.getReportAreaName() + bean.getReportAddress());
holder.mTvState.setText(bean.getHandleStatusText());
holder.mTvResult.setText(bean.getReportResultText());
holder.mTvResult.setText("处理结果:" + bean.getReportResultText());
if (bean.getTagList().size() > 0) {
holder.mRlvTags.setVisibility(View.VISIBLE);
IncidentTagListAdapter adapter = new IncidentTagListAdapter(mContext, bean.getTagList());

View File

@ -0,0 +1,92 @@
package com.tengshisoft.commonmodule.beans;
/**
* 作者: adam
* 日期: 2021/11/8 - 6:55 下午
* 邮箱: itgaojian@163.com
* 描述:
*/
public class CarBelongPersonDetailBean {
private String belongEndTime;
private String belongIdCard;
private String belongName;
private String belongPhone;
private String belongStartTime;
private String carBelongId;
private String carId;
private String gmtCreate;
private int isUse;
public String getBelongEndTime() {
return belongEndTime;
}
public void setBelongEndTime(String belongEndTime) {
this.belongEndTime = belongEndTime;
}
public String getBelongIdCard() {
return belongIdCard;
}
public void setBelongIdCard(String belongIdCard) {
this.belongIdCard = belongIdCard;
}
public String getBelongName() {
return belongName;
}
public void setBelongName(String belongName) {
this.belongName = belongName;
}
public String getBelongPhone() {
return belongPhone;
}
public void setBelongPhone(String belongPhone) {
this.belongPhone = belongPhone;
}
public String getBelongStartTime() {
return belongStartTime;
}
public void setBelongStartTime(String belongStartTime) {
this.belongStartTime = belongStartTime;
}
public String getCarBelongId() {
return carBelongId;
}
public void setCarBelongId(String carBelongId) {
this.carBelongId = carBelongId;
}
public String getCarId() {
return carId;
}
public void setCarId(String carId) {
this.carId = carId;
}
public String getGmtCreate() {
return gmtCreate;
}
public void setGmtCreate(String gmtCreate) {
this.gmtCreate = gmtCreate;
}
public int getIsUse() {
return isUse;
}
public void setIsUse(int isUse) {
this.isUse = isUse;
}
}

View File

@ -0,0 +1,124 @@
package com.tengshisoft.commonmodule.beans;
import java.util.List;
/**
* 作者: adam
* 日期: 2021/11/8 - 4:32 下午
* 邮箱: itgaojian@163.com
* 描述:
*/
public class CarBelongPersonListBean {
private int page;
private int total;
private List<RowsBean> rows;
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
public List<RowsBean> getRows() {
return rows;
}
public void setRows(List<RowsBean> rows) {
this.rows = rows;
}
public static class RowsBean {
private String belongEndTime;
private String belongIdCard;
private String belongName;
private String belongPhone;
private String belongStartTime;
private String carBelongId;
private String carId;
private String gmtCreate;
private int isUse;
public String getBelongEndTime() {
return belongEndTime;
}
public void setBelongEndTime(String belongEndTime) {
this.belongEndTime = belongEndTime;
}
public String getBelongIdCard() {
return belongIdCard;
}
public void setBelongIdCard(String belongIdCard) {
this.belongIdCard = belongIdCard;
}
public String getBelongName() {
return belongName;
}
public void setBelongName(String belongName) {
this.belongName = belongName;
}
public String getBelongPhone() {
return belongPhone;
}
public void setBelongPhone(String belongPhone) {
this.belongPhone = belongPhone;
}
public String getBelongStartTime() {
return belongStartTime;
}
public void setBelongStartTime(String belongStartTime) {
this.belongStartTime = belongStartTime;
}
public String getCarBelongId() {
return carBelongId;
}
public void setCarBelongId(String carBelongId) {
this.carBelongId = carBelongId;
}
public String getCarId() {
return carId;
}
public void setCarId(String carId) {
this.carId = carId;
}
public String getGmtCreate() {
return gmtCreate;
}
public void setGmtCreate(String gmtCreate) {
this.gmtCreate = gmtCreate;
}
public int getIsUse() {
return isUse;
}
public void setIsUse(int isUse) {
this.isUse = isUse;
}
}
}

View File

@ -8,4 +8,103 @@ package com.tengshisoft.commonmodule.beans;
*/
public class CarDetailBean {
private String areaCode;
private String areaName;
private String carId;
private String carName;
private String carNumber;
private String carPhotos;
private String carTypeId;
private String carTypeName;
private String gmtCreate;
private String gridCode;
private String gridName;
public String getAreaCode() {
return areaCode;
}
public void setAreaCode(String areaCode) {
this.areaCode = areaCode;
}
public String getAreaName() {
return areaName;
}
public void setAreaName(String areaName) {
this.areaName = areaName;
}
public String getCarId() {
return carId;
}
public void setCarId(String carId) {
this.carId = carId;
}
public String getCarName() {
return carName;
}
public void setCarName(String carName) {
this.carName = carName;
}
public String getCarNumber() {
return carNumber;
}
public void setCarNumber(String carNumber) {
this.carNumber = carNumber;
}
public String getCarPhotos() {
return carPhotos;
}
public void setCarPhotos(String carPhotos) {
this.carPhotos = carPhotos;
}
public String getCarTypeId() {
return carTypeId;
}
public void setCarTypeId(String carTypeId) {
this.carTypeId = carTypeId;
}
public String getCarTypeName() {
return carTypeName;
}
public void setCarTypeName(String carTypeName) {
this.carTypeName = carTypeName;
}
public String getGmtCreate() {
return gmtCreate;
}
public void setGmtCreate(String gmtCreate) {
this.gmtCreate = gmtCreate;
}
public String getGridCode() {
return gridCode;
}
public void setGridCode(String gridCode) {
this.gridCode = gridCode;
}
public String getGridName() {
return gridName;
}
public void setGridName(String gridName) {
this.gridName = gridName;
}
}

View File

@ -1,5 +1,7 @@
package com.tengshisoft.commonmodule.beans;
import java.util.List;
/**
* 作者: adam
* 日期: 2021/10/27 - 9:36 上午
@ -8,4 +10,133 @@ package com.tengshisoft.commonmodule.beans;
*/
public class CarListBean {
private int page;
private int total;
private List<RowsBean> rows;
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
public List<RowsBean> getRows() {
return rows;
}
public void setRows(List<RowsBean> rows) {
this.rows = rows;
}
public static class RowsBean {
private String areaCode;
private String areaName;
private String carId;
private String carName;
private String carNumber;
private String carPhotos;
private String carTypeId;
private String carTypeName;
private String gmtCreate;
private String gridCode;
private String gridName;
public String getAreaCode() {
return areaCode;
}
public void setAreaCode(String areaCode) {
this.areaCode = areaCode;
}
public String getAreaName() {
return areaName;
}
public void setAreaName(String areaName) {
this.areaName = areaName;
}
public String getCarId() {
return carId;
}
public void setCarId(String carId) {
this.carId = carId;
}
public String getCarName() {
return carName;
}
public void setCarName(String carName) {
this.carName = carName;
}
public String getCarNumber() {
return carNumber;
}
public void setCarNumber(String carNumber) {
this.carNumber = carNumber;
}
public String getCarPhotos() {
return carPhotos;
}
public void setCarPhotos(String carPhotos) {
this.carPhotos = carPhotos;
}
public String getCarTypeId() {
return carTypeId;
}
public void setCarTypeId(String carTypeId) {
this.carTypeId = carTypeId;
}
public String getCarTypeName() {
return carTypeName;
}
public void setCarTypeName(String carTypeName) {
this.carTypeName = carTypeName;
}
public String getGmtCreate() {
return gmtCreate;
}
public void setGmtCreate(String gmtCreate) {
this.gmtCreate = gmtCreate;
}
public String getGridCode() {
return gridCode;
}
public void setGridCode(String gridCode) {
this.gridCode = gridCode;
}
public String getGridName() {
return gridName;
}
public void setGridName(String gridName) {
this.gridName = gridName;
}
}
}

View File

@ -0,0 +1,92 @@
package com.tengshisoft.commonmodule.beans;
/**
* 作者: adam
* 日期: 2021/11/8 - 6:55 下午
* 邮箱: itgaojian@163.com
* 描述:
*/
public class CarUsePersonDetailBean {
private String carId;
private String carUserId;
private String gmtCreate;
private int isUse;
private String useEndTime;
private String useStartTime;
private String userIdCard;
private String userName;
private String userPhone;
public String getCarId() {
return carId;
}
public void setCarId(String carId) {
this.carId = carId;
}
public String getCarUserId() {
return carUserId;
}
public void setCarUserId(String carUserId) {
this.carUserId = carUserId;
}
public String getGmtCreate() {
return gmtCreate;
}
public void setGmtCreate(String gmtCreate) {
this.gmtCreate = gmtCreate;
}
public int getIsUse() {
return isUse;
}
public void setIsUse(int isUse) {
this.isUse = isUse;
}
public String getUseEndTime() {
return useEndTime;
}
public void setUseEndTime(String useEndTime) {
this.useEndTime = useEndTime;
}
public String getUseStartTime() {
return useStartTime;
}
public void setUseStartTime(String useStartTime) {
this.useStartTime = useStartTime;
}
public String getUserIdCard() {
return userIdCard;
}
public void setUserIdCard(String userIdCard) {
this.userIdCard = userIdCard;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPhone() {
return userPhone;
}
public void setUserPhone(String userPhone) {
this.userPhone = userPhone;
}
}

View File

@ -0,0 +1,124 @@
package com.tengshisoft.commonmodule.beans;
import java.util.List;
/**
* 作者: adam
* 日期: 2021/11/8 - 4:33 下午
* 邮箱: itgaojian@163.com
* 描述:
*/
public class CarUsePersonListBean {
private int page;
private int total;
private List<RowsBean> rows;
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
public List<RowsBean> getRows() {
return rows;
}
public void setRows(List<RowsBean> rows) {
this.rows = rows;
}
public static class RowsBean {
private String carId;
private String carUserId;
private String gmtCreate;
private int isUse;
private String useEndTime;
private String useStartTime;
private String userIdCard;
private String userName;
private String userPhone;
public String getCarId() {
return carId;
}
public void setCarId(String carId) {
this.carId = carId;
}
public String getCarUserId() {
return carUserId;
}
public void setCarUserId(String carUserId) {
this.carUserId = carUserId;
}
public String getGmtCreate() {
return gmtCreate;
}
public void setGmtCreate(String gmtCreate) {
this.gmtCreate = gmtCreate;
}
public int getIsUse() {
return isUse;
}
public void setIsUse(int isUse) {
this.isUse = isUse;
}
public String getUseEndTime() {
return useEndTime;
}
public void setUseEndTime(String useEndTime) {
this.useEndTime = useEndTime;
}
public String getUseStartTime() {
return useStartTime;
}
public void setUseStartTime(String useStartTime) {
this.useStartTime = useStartTime;
}
public String getUserIdCard() {
return userIdCard;
}
public void setUserIdCard(String userIdCard) {
this.userIdCard = userIdCard;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPhone() {
return userPhone;
}
public void setUserPhone(String userPhone) {
this.userPhone = userPhone;
}
}
}

View File

@ -0,0 +1,92 @@
package com.tengshisoft.commonmodule.beans;
/**
* 作者: adam
* 日期: 2021/11/8 - 2:01 下午
* 邮箱: itgaojian@163.com
* 描述:
*/
public class SaveCarBean {
private String areaCode;
private String areaName;
private String carName;
private String carNumber;
private String carPhotos;
private String carTypeId;
private String carTypeName;
private String gridCode;
private String gridName;
public String getAreaCode() {
return areaCode;
}
public void setAreaCode(String areaCode) {
this.areaCode = areaCode;
}
public String getAreaName() {
return areaName;
}
public void setAreaName(String areaName) {
this.areaName = areaName;
}
public String getCarName() {
return carName;
}
public void setCarName(String carName) {
this.carName = carName;
}
public String getCarNumber() {
return carNumber;
}
public void setCarNumber(String carNumber) {
this.carNumber = carNumber;
}
public String getCarPhotos() {
return carPhotos;
}
public void setCarPhotos(String carPhotos) {
this.carPhotos = carPhotos;
}
public String getCarTypeId() {
return carTypeId;
}
public void setCarTypeId(String carTypeId) {
this.carTypeId = carTypeId;
}
public String getCarTypeName() {
return carTypeName;
}
public void setCarTypeName(String carTypeName) {
this.carTypeName = carTypeName;
}
public String getGridCode() {
return gridCode;
}
public void setGridCode(String gridCode) {
this.gridCode = gridCode;
}
public String getGridName() {
return gridName;
}
public void setGridName(String gridName) {
this.gridName = gridName;
}
}

View File

@ -0,0 +1,83 @@
package com.tengshisoft.commonmodule.beans;
/**
* 作者: adam
* 日期: 2021/11/8 - 5:40 下午
* 邮箱: itgaojian@163.com
* 描述: 车辆所属人
*/
public class SaveCarBelongPersonBean {
private String belongEndTime;
private String belongIdCard;
private String belongName;
private String belongPhone;
private String belongStartTime;
private String carBelongId;
private String carId;
private int isUse;
public String getBelongEndTime() {
return belongEndTime;
}
public void setBelongEndTime(String belongEndTime) {
this.belongEndTime = belongEndTime;
}
public String getBelongIdCard() {
return belongIdCard;
}
public void setBelongIdCard(String belongIdCard) {
this.belongIdCard = belongIdCard;
}
public String getBelongName() {
return belongName;
}
public void setBelongName(String belongName) {
this.belongName = belongName;
}
public String getBelongPhone() {
return belongPhone;
}
public void setBelongPhone(String belongPhone) {
this.belongPhone = belongPhone;
}
public String getBelongStartTime() {
return belongStartTime;
}
public void setBelongStartTime(String belongStartTime) {
this.belongStartTime = belongStartTime;
}
public String getCarBelongId() {
return carBelongId;
}
public void setCarBelongId(String carBelongId) {
this.carBelongId = carBelongId;
}
public String getCarId() {
return carId;
}
public void setCarId(String carId) {
this.carId = carId;
}
public int getIsUse() {
return isUse;
}
public void setIsUse(int isUse) {
this.isUse = isUse;
}
}

View File

@ -0,0 +1,83 @@
package com.tengshisoft.commonmodule.beans;
/**
* 作者: adam
* 日期: 2021/11/8 - 5:40 下午
* 邮箱: itgaojian@163.com
* 描述: 车辆使用人
*/
public class SaveCarUsePersonBean {
private String carId;
private String carUserId;
private int isUse;
private String useEndTime;
private String useStartTime;
private String userIdCard;
private String userName;
private String userPhone;
public String getCarId() {
return carId;
}
public void setCarId(String carId) {
this.carId = carId;
}
public String getCarUserId() {
return carUserId;
}
public void setCarUserId(String carUserId) {
this.carUserId = carUserId;
}
public int getIsUse() {
return isUse;
}
public void setIsUse(int isUse) {
this.isUse = isUse;
}
public String getUseEndTime() {
return useEndTime;
}
public void setUseEndTime(String useEndTime) {
this.useEndTime = useEndTime;
}
public String getUseStartTime() {
return useStartTime;
}
public void setUseStartTime(String useStartTime) {
this.useStartTime = useStartTime;
}
public String getUserIdCard() {
return userIdCard;
}
public void setUserIdCard(String userIdCard) {
this.userIdCard = userIdCard;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPhone() {
return userPhone;
}
public void setUserPhone(String userPhone) {
this.userPhone = userPhone;
}
}

View File

@ -0,0 +1,40 @@
package com.tengshisoft.commonmodule.holders;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import com.tengshisoft.commonmodule.R;
import org.jetbrains.annotations.NotNull;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
/**
* 作者: adam
* 日期: 2021/9/26 - 3:01 下午
* 邮箱: itgaojian@163.com
* 描述: 汽车-所属人
*/
public class CarBelongPersonHolder extends RecyclerView.ViewHolder {
public TextView mTvName;
public TextView mTvPhone;
public TextView mTvIdCard;
public TextView mTvTime;
public Button mBtnDel;
public Button mBtnEdit;
public TextView mTvState;
public CarBelongPersonHolder(@NonNull @NotNull View itemView) {
super(itemView);
mTvName = itemView.findViewById(R.id.tv_name);
mTvPhone = itemView.findViewById(R.id.tv_phone);
mTvIdCard = itemView.findViewById(R.id.tv_id_card);
mTvTime = itemView.findViewById(R.id.tv_time);
mBtnDel = itemView.findViewById(R.id.btn_del);
mBtnEdit = itemView.findViewById(R.id.btn_edit);
mTvState = itemView.findViewById(R.id.tv_state);
}
}

View File

@ -2,6 +2,7 @@ package com.tengshisoft.commonmodule.holders;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import com.tengshisoft.commonmodule.R;
@ -18,20 +19,18 @@ import androidx.recyclerview.widget.RecyclerView;
* 描述: 汽车
*/
public class CarListHolder extends RecyclerView.ViewHolder {
public TextView mTvUserName;
public TextView mTvNumber;
public TextView mTvAddress;
public TextView mTvPhone;
public Button mBtnEdit;
public Button mBtnDel;
public TextView mTvUser;
public ImageView mIvPic;
public CarListHolder(@NonNull @NotNull View itemView) {
super(itemView);
mTvNumber = itemView.findViewById(R.id.tv_car_number);
mTvUser = itemView.findViewById(R.id.tv_user);
mTvAddress = itemView.findViewById(R.id.tv_address);
mTvUserName = itemView.findViewById(R.id.tv_user_name);
mTvPhone = itemView.findViewById(R.id.tv_phone);
mBtnDel = itemView.findViewById(R.id.btn_del);
mBtnEdit = itemView.findViewById(R.id.btn_edit);
mIvPic = itemView.findViewById(R.id.iv_pic);
}
}

View File

@ -0,0 +1,39 @@
package com.tengshisoft.commonmodule.holders;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import com.tengshisoft.commonmodule.R;
import org.jetbrains.annotations.NotNull;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
/**
* 作者: adam
* 日期: 2021/9/26 - 3:01 下午
* 邮箱: itgaojian@163.com
* 描述: 汽车-使用人
*/
public class CarUsePersonHolder extends RecyclerView.ViewHolder {
public TextView mTvName;
public TextView mTvPhone;
public TextView mTvIdCard;
public TextView mTvTime;
public Button mBtnDel;
public Button mBtnEdit;
public TextView mTvState;
public CarUsePersonHolder(@NonNull @NotNull View itemView) {
super(itemView);
mTvName = itemView.findViewById(R.id.tv_name);
mTvPhone = itemView.findViewById(R.id.tv_phone);
mTvIdCard = itemView.findViewById(R.id.tv_id_card);
mTvTime = itemView.findViewById(R.id.tv_time);
mBtnDel = itemView.findViewById(R.id.btn_del);
mBtnEdit = itemView.findViewById(R.id.btn_edit);
mTvState = itemView.findViewById(R.id.tv_state);
}
}

View File

@ -6,6 +6,12 @@ import com.tengshisoft.commonmodule.beans.BuildingDetailBean;
import com.tengshisoft.commonmodule.beans.BuildingListBean;
import com.tengshisoft.commonmodule.beans.BuildingManagerDetailBean;
import com.tengshisoft.commonmodule.beans.BuildingManagerListBean;
import com.tengshisoft.commonmodule.beans.CarBelongPersonDetailBean;
import com.tengshisoft.commonmodule.beans.CarBelongPersonListBean;
import com.tengshisoft.commonmodule.beans.CarDetailBean;
import com.tengshisoft.commonmodule.beans.CarListBean;
import com.tengshisoft.commonmodule.beans.CarUsePersonDetailBean;
import com.tengshisoft.commonmodule.beans.CarUsePersonListBean;
import com.tengshisoft.commonmodule.beans.CaseComponentListBean;
import com.tengshisoft.commonmodule.beans.CaseTypeBean;
import com.tengshisoft.commonmodule.beans.CensusAidsListBean;
@ -1737,5 +1743,114 @@ public interface GridApis {
@Headers({"base_url_name:usercenter", "Content-Type: application/json", "Accept: application/json"})
@PUT("app/organization/updateorganization/{organizationId}")
Observable<SuccessBean> doEditSocialOrg(@Path("organizationId") String id, @Body RequestBody body, @Header("token") String token);
/*==========================================汽车管理====================================================*/
/**
* 获取汽车列表
*/
@Headers({"base_url_name:usercenter", "Content-Type: application/json", "Accept: application/json"})
@GET("app/car/listpage")
Observable<CarListBean> getCarList(@Query("keywords") String key, @Query("page") String page, @Header("token") String token);
/**
* 获取汽车详情
*/
@Headers({"base_url_name:usercenter", "Content-Type: application/json", "Accept: application/json"})
@GET("app/car/get/{carId}")
Observable<CarDetailBean> getCarDetailById(@Path("carId") String id, @Header("token") String token);
/**
* 删除汽车
*/
@Headers({"base_url_name:usercenter", "Content-Type: application/json", "Accept: application/json"})
@DELETE("app/car/remove/{ids}")
Observable<SuccessBean> doDelCarOrg(@Path("ids") String id, @Header("token") String token);
/**
* 保存汽车信息
*/
@Headers({"base_url_name:usercenter", "Content-Type: application/json", "Accept: application/json"})
@POST("app/car/save")
Observable<SuccessBean> doSaveCar(@Body RequestBody body, @Header("token") String token);
/**
* 修改汽车
*/
@Headers({"base_url_name:usercenter", "Content-Type: application/json", "Accept: application/json"})
@PUT("app/car/updatecar/{carId}")
Observable<SuccessBean> doEditCar(@Path("carId") String id, @Body RequestBody body, @Header("token") String token);
/**
* 车辆所属人列表
*/
@Headers({"base_url_name:usercenter", "Content-Type: application/json", "Accept: application/json"})
@GET("app/car-belong/listpage")
Observable<CarBelongPersonListBean> getCarBelongPersonList(@Query("page") String page, @Header("token") String token);
/**
* 车辆使用人列表
*/
@Headers({"base_url_name:usercenter", "Content-Type: application/json", "Accept: application/json"})
@GET("app/car-user/listpage")
Observable<CarUsePersonListBean> getCarUsePersonList(@Query("page") String page, @Header("token") String token);
/**
* 保存汽车所属人
*/
@Headers({"base_url_name:usercenter", "Content-Type: application/json", "Accept: application/json"})
@POST("app/car-belong/save")
Observable<SuccessBean> doSaveCarBelong(@Body RequestBody body, @Header("token") String token);
/**
* 保存汽车信息
*/
@Headers({"base_url_name:usercenter", "Content-Type: application/json", "Accept: application/json"})
@POST("app/car-user/save")
Observable<SuccessBean> doSaveCarUse(@Body RequestBody body, @Header("token") String token);
/**
* 删除所属人
*/
@Headers({"base_url_name:usercenter", "Content-Type: application/json", "Accept: application/json"})
@DELETE("app/car-belong/remove/{ids}")
Observable<SuccessBean> doDelCarBelong(@Path("ids") String id, @Header("token") String token);
/**
* 删除使用人
*/
@Headers({"base_url_name:usercenter", "Content-Type: application/json", "Accept: application/json"})
@DELETE("app/car-user/remove/{ids}")
Observable<SuccessBean> doDelCarUse(@Path("ids") String id, @Header("token") String token);
/**
* 获取汽车所属人详情
*/
@Headers({"base_url_name:usercenter", "Content-Type: application/json", "Accept: application/json"})
@GET("app/car-belong/get/{carBelongId}")
Observable<CarBelongPersonDetailBean> getCarBelongDetailById(@Path("carBelongId") String id, @Header("token") String token);
/**
* 获取汽车使用人详情
*/
@Headers({"base_url_name:usercenter", "Content-Type: application/json", "Accept: application/json"})
@GET("app/car-user/get/{carUserId}")
Observable<CarUsePersonDetailBean> getCarUseDetailById(@Path("carUserId") String id, @Header("token") String token);
/**
* 修改汽车所属人
*/
@Headers({"base_url_name:usercenter", "Content-Type: application/json", "Accept: application/json"})
@PUT("app/car-belong/updatecarbelong/{carBelongId}")
Observable<SuccessBean> doEditCarBelong(@Path("carBelongId") String id, @Body RequestBody body, @Header("token") String token);
/**
* 修改汽车使用人
*/
@Headers({"base_url_name:usercenter", "Content-Type: application/json", "Accept: application/json"})
@PUT("app/car-user/updatecaruser/{carUserId}")
Observable<SuccessBean> doEditCarUse(@Path("carUserId") String id, @Body RequestBody body, @Header("token") String token);
}

View File

@ -16,8 +16,8 @@
<ImageView
android:id="@+id/iv_pic"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_width="32dp"
android:layout_height="32dp"
android:src="@drawable/ic_car_icon" />
<LinearLayout
@ -53,36 +53,7 @@
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<Button
android:id="@+id/btn_edit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/sel_btn_submit"
android:minWidth="0dp"
android:minHeight="0dp"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:text="编辑"
android:textColor="@color/white" />
<Button
android:id="@+id/btn_del"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:background="@drawable/sel_btn_submit"
android:minWidth="0dp"
android:minHeight="0dp"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:text="删除"
android:textColor="@color/white" />
</LinearLayout>
</LinearLayout>

View File

@ -0,0 +1,127 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/transparent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:background="@drawable/shape_rectangle_white"
android:orientation="horizontal"
android:padding="5dp">
<ImageView
android:id="@+id/iv_user_icon"
android:layout_width="32dp"
android:layout_height="32dp"
android:src="@drawable/ic_user_default" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:id="@+id/tv_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#ff353535"
android:textSize="18sp"
tools:text="名字" />
<TextView
android:id="@+id/tv_phone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:gravity="center"
android:textColor="@color/gray_text"
android:textSize="14sp"
tools:text="手机" />
<TextView
android:id="@+id/tv_id_card"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="3dp"
android:gravity="center"
android:textColor="@color/gray_text"
android:textSize="14sp"
tools:text="身份证" />
<View
android:layout_width="match_parent"
android:layout_height="2dp"
android:layout_marginTop="5dp"
android:background="@drawable/shp_line_dotted"
android:layerType="software" />
<TextView
android:id="@+id/tv_time"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:drawableLeft="@drawable/ic_clock_blue"
android:drawablePadding="5dp"
android:ellipsize="end"
android:maxLines="2"
android:textColor="#ff1189ff"
android:textSize="12sp"
tools:text="开始使用时间-结束使用时间" />
</LinearLayout>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
android:id="@+id/btn_edit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:background="@drawable/sel_btn_submit"
android:minWidth="0dp"
android:minHeight="0dp"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:text="编辑"
android:textColor="@color/white" />
<Button
android:id="@+id/btn_del"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/btn_edit"
android:layout_centerHorizontal="true"
android:layout_marginTop="8dp"
android:background="@drawable/sel_btn_submit"
android:minWidth="0dp"
android:minHeight="0dp"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:text="删除"
android:textColor="@color/white" />
<TextView
android:id="@+id/tv_state"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="@drawable/shp_status_blue"
android:gravity="center"
android:textColor="@color/text_blue"
tools:text="未受理" />
</RelativeLayout>
</LinearLayout>
</RelativeLayout>

View File

@ -51,6 +51,14 @@
android:textSize="12sp"
tools:text="上报时间" />
<TextView
android:id="@+id/tv_result"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/black"
android:textSize="12sp"
tools:text="不予受理" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rlv_tags"
android:layout_width="match_parent"
@ -73,17 +81,6 @@
android:textColor="@color/text_blue"
tools:text="受理阶段" />
<TextView
android:id="@+id/tv_result"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="3dp"
android:background="@drawable/shp_status_yellow"
android:gravity="center"
android:paddingLeft="3dp"
android:paddingRight="3dp"
android:textColor="@color/text_yellow"
tools:text="不予受理" />
</LinearLayout>
</LinearLayout>

View File

@ -68,7 +68,7 @@
<androidx.appcompat.widget.AppCompatRatingBar
android:id="@+id/arb_star"
style="?android:attr/ratingBarStyleSmall"
style="@style/rating_style"
android:layout_width="wrap_content"
android:layout_height="20dp"
android:layout_centerVertical="true"

View File

@ -4,68 +4,337 @@
package="com.tengshisoft.gridmodule">
<application>
<activity android:name=".incident.activitys.populace.YoungCaseDetailActivity"></activity>
<activity android:name=".incident.activitys.populace.YoungCaseAddActivity" />
<activity android:name=".incident.activitys.populace.YoungCaseListActivity" />
<activity android:name=".incident.activitys.locus.WorkLocusActivity" />
<activity android:name=".incident.activitys.tasks.TaskReportRecordEditActivity" />
<activity android:name=".incident.activitys.tasks.TaskReportRecordDetailActivity" />
<activity android:name=".incident.activitys.schools.SchoolCaseDetailActivity" />
<activity android:name=".incident.activitys.schools.SchoolCaseAddActivity" />
<activity android:name=".incident.activitys.schools.SchoolCaseListActivity" />
<activity android:name=".incident.activitys.schools.SchoolEmphasesDetailActivity" />
<activity android:name=".incident.activitys.schools.SchoolEmphasesAddActivity" />
<activity android:name=".incident.activitys.schools.SchoolEmphasesListActivity" />
<activity android:name=".incident.activitys.schools.SchoolManageDetailActivity" />
<activity android:name=".incident.activitys.schools.SchoolManageAddActivity" />
<activity android:name=".incident.activitys.schools.SchoolManageListActivity" />
<activity android:name=".incident.activitys.patrols.ExpressPatrolEditActivity" />
<activity android:name=".incident.activitys.patrols.ExpressPatrolDetailActivity" />
<activity android:name=".incident.activitys.patrols.ExpressPatrolAddActivity" />
<activity android:name=".incident.activitys.patrols.ExpressPatrolListActivity" />
<activity android:name=".incident.activitys.patrols.PenalPatrolEditActivity" />
<activity android:name=".incident.activitys.patrols.PenalPatrolDetailActivity" />
<activity android:name=".incident.activitys.patrols.PenalPatrolAddActivity" />
<activity android:name=".incident.activitys.patrols.PenalPatrolListActivity" />
<activity android:name=".incident.activitys.patrols.KeyAreaPatrolDetailActivity" />
<activity android:name=".incident.activitys.patrols.KeyAreaPatrolEditActivity" />
<activity android:name=".incident.activitys.patrols.KeyAreaPatrolAddActivity" />
<activity android:name=".incident.activitys.patrols.KeyAreaPatrolListActivity" />
<activity android:name=".incident.activitys.security.PenalVictimEditActivity" />
<activity android:name=".incident.activitys.security.PenalVictimDetailActivity" />
<activity android:name=".incident.activitys.security.PenalVictimAddActivity" />
<activity android:name=".incident.activitys.security.PenalVictimListActivity" />
<activity android:name=".incident.activitys.security.PenalSuspicionEditActivity" />
<activity android:name=".incident.activitys.security.PenalSuspicionDetailActivity" />
<activity android:name=".incident.activitys.security.PenalCaseSelActivity" />
<activity android:name=".incident.activitys.security.PenalSuspicionAddActivity" />
<activity android:name=".incident.activitys.security.PenalSuspicionListActivity" />
<activity android:name=".incident.activitys.building.BuildingManagerEditActivity" />
<activity android:name=".incident.activitys.building.BuildingManagerDetailActivity" />
<activity android:name=".incident.activitys.building.BuildingManagerAddActivity" />
<activity android:name=".incident.activitys.security.ExpressPoiDetailActivity" />
<activity android:name=".incident.activitys.security.ExpressPoiEditActivity" />
<activity android:name=".incident.activitys.security.ExpressPoiAddActivity" />
<activity android:name=".incident.activitys.security.ExpressPoiListActivity" />
<activity android:name=".incident.activitys.security.PenalDetailActivity" />
<activity android:name=".incident.activitys.security.PenalEditActivity" />
<activity android:name=".incident.activitys.security.PenalAddActivity" />
<activity android:name=".incident.activitys.security.PenalListActivity" />
<activity android:name=".incident.activitys.security.KeyAreaDetailActivity" />
<activity android:name=".incident.activitys.security.KeyAreaEditActivity" />
<activity android:name=".incident.activitys.security.KeyAreaAddActivity" />
<activity android:name=".incident.activitys.security.KeyAreaListActivity" />
<activity android:name=".incident.activitys.orgmanage.SocialOrgDetailActivity" />
<activity android:name=".incident.activitys.orgmanage.SocialOrgEditActivity" />
<activity android:name=".incident.activitys.orgmanage.SocialOrgAddActivity" />
<activity android:name=".incident.activitys.orgmanage.NonPublicOrgDetailActivity" />
<activity android:name=".incident.activitys.orgmanage.NonPublicOrgEditActivity" />
<activity android:name=".incident.activitys.orgmanage.NonPublicOrgAddActivity" />
<activity android:name=".incident.activitys.orgmanage.SocialOrgListActivity" />
<activity android:name=".incident.activitys.orgmanage.NonPublicOrgListActivity" />
<activity android:name=".incident.activitys.tasks.TaskDetailActivity" />
<activity android:name=".incident.activitys.tasks.TaskReportRecordAddActivity" />
<activity android:name=".incident.activitys.tasks.TaskManageActivity" />
<activity android:name=".incident.activitys.cars.CarPersonEditActivity"></activity>
<activity
android:name=".incident.activitys.cars.CarManageDetailActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.cars.CarManageEditActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.cars.CarManageAddActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.cars.CarManageListActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.populace.YoungCaseDetailActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.populace.YoungCaseAddActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.populace.YoungCaseListActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.locus.WorkLocusActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.tasks.TaskReportRecordEditActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.tasks.TaskReportRecordDetailActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.schools.SchoolCaseDetailActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.schools.SchoolCaseAddActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.schools.SchoolCaseListActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.schools.SchoolEmphasesDetailActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.schools.SchoolEmphasesAddActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.schools.SchoolEmphasesListActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.schools.SchoolManageDetailActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.schools.SchoolManageAddActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.schools.SchoolManageListActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.patrols.ExpressPatrolEditActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.patrols.ExpressPatrolDetailActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.patrols.ExpressPatrolAddActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.patrols.ExpressPatrolListActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.patrols.PenalPatrolEditActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.patrols.PenalPatrolDetailActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.patrols.PenalPatrolAddActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.patrols.PenalPatrolListActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.patrols.KeyAreaPatrolDetailActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.patrols.KeyAreaPatrolEditActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.patrols.KeyAreaPatrolAddActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.patrols.KeyAreaPatrolListActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.security.PenalVictimEditActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.security.PenalVictimDetailActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.security.PenalVictimAddActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.security.PenalVictimListActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.security.PenalSuspicionEditActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.security.PenalSuspicionDetailActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.security.PenalCaseSelActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.security.PenalSuspicionAddActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.security.PenalSuspicionListActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.building.BuildingManagerEditActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.building.BuildingManagerDetailActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.building.BuildingManagerAddActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.security.ExpressPoiDetailActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.security.ExpressPoiEditActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.security.ExpressPoiAddActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.security.ExpressPoiListActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.security.PenalDetailActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.security.PenalEditActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.security.PenalAddActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.security.PenalListActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.security.KeyAreaDetailActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.security.KeyAreaEditActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.security.KeyAreaAddActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.security.KeyAreaListActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.orgmanage.SocialOrgDetailActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.orgmanage.SocialOrgEditActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.orgmanage.SocialOrgAddActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.orgmanage.NonPublicOrgDetailActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.orgmanage.NonPublicOrgEditActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.orgmanage.NonPublicOrgAddActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.orgmanage.SocialOrgListActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.orgmanage.NonPublicOrgListActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.tasks.TaskDetailActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.tasks.TaskReportRecordAddActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.tasks.TaskManageActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".incident.activitys.populace.CensusYoungListActivity"
android:screenOrientation="portrait"
@ -333,6 +602,7 @@
tools:ignore="LockedOrientationActivity" />
<activity
android:name=".incident.activitys.building.BuildingAddActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden"
tools:ignore="LockedOrientationActivity" />

View File

@ -0,0 +1,521 @@
package com.tengshisoft.gridmodule.incident.activitys.cars;
import android.app.ProgressDialog;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Color;
import android.net.Uri;
import android.os.Environment;
import android.provider.MediaStore;
import android.text.TextUtils;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.launcher.ARouter;
import com.baidu.mapapi.map.BitmapDescriptorFactory;
import com.baidu.mapapi.map.MarkerOptions;
import com.baidu.mapapi.model.LatLng;
import com.bigkoo.pickerview.builder.OptionsPickerBuilder;
import com.bigkoo.pickerview.view.OptionsPickerView;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions;
import com.google.gson.Gson;
import com.hjq.toast.ToastUtils;
import com.tengshisoft.commonmodule.beans.AreaGridListBean;
import com.tengshisoft.commonmodule.beans.SaveCarBean;
import com.tengshisoft.commonmodule.beans.SuccessBean;
import com.tengshisoft.commonmodule.nets.GridApis;
import com.tengshisoft.gridmodule.R;
import com.tengshisoft.gridmodule.R2;
import com.tenlionsoft.baselib.constant.PathConfig;
import com.tenlionsoft.baselib.core.beans.AddPhotoBean;
import com.tenlionsoft.baselib.core.beans.BaseSuccessBean;
import com.tenlionsoft.baselib.core.beans.DicBean;
import com.tenlionsoft.baselib.core.retrofit_net.BaseUrlApi;
import com.tenlionsoft.baselib.core.retrofit_net.RetrofitManager;
import com.tenlionsoft.baselib.core.retrofit_net.api.BaseApiService;
import com.tenlionsoft.baselib.core.widget.base.AddPhotoAdapter;
import com.tenlionsoft.baselib.core.widget.base.BaseActivity;
import com.tenlionsoft.baselib.core.widget.base.GlideRoundTransform;
import com.tenlionsoft.baselib.core.widget.views.AreaChooseDialog;
import com.tenlionsoft.baselib.core.widget.views.ButtomDialogView;
import com.tenlionsoft.baselib.utils.ExceptionHandler;
import com.tenlionsoft.baselib.utils.UIUtil;
import com.tenlionsoft.baselib.utils.UserLgUtils;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import androidx.core.widget.NestedScrollView;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.Unbinder;
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
import io.reactivex.rxjava3.annotations.NonNull;
import io.reactivex.rxjava3.core.Observer;
import io.reactivex.rxjava3.disposables.Disposable;
import io.reactivex.rxjava3.schedulers.Schedulers;
import okhttp3.MediaType;
import okhttp3.MultipartBody;
import okhttp3.RequestBody;
/**
* 作者: Adam
* 日期: 2021年11月08日09:50:10
* 邮箱: itgaojian@163.com
* 描述: 车辆详细录入
*/
@Route(path = PathConfig.PATH_MODULE_GRID_ACTIVITY_CAR_MANAGE_ADD)
public class CarManageAddActivity extends BaseActivity {
@BindView(R2.id.tv_issue_base_info)
TextView mTvIssueBaseInfo;
@BindView(R2.id.et_car_number)
EditText mEtCarNumber;
@BindView(R2.id.tv_car_type)
TextView mTvCarType;
@BindView(R2.id.et_car_name)
EditText mEtCarName;
@BindView(R2.id.tv_area)
TextView mTvArea;
@BindView(R2.id.tv_grid)
TextView mTvGrid;
@BindView(R2.id.rlv_car_photo)
RecyclerView mRlvCarPhoto;
@BindView(R2.id.btn_submit)
Button mBtnSubmit;
@BindView(R2.id.nsv_content)
NestedScrollView mNsvContent;
private Unbinder mBind;
private DicBean mSelCarType;
private String mSelAreaCode;
private String mSelAreaId;
private String mSelAreaName;
private List<DicBean> mCarTypeList;
private OptionsPickerView mCarTypePicker;
private List<AddPhotoBean> mCarPhotos;
private AddPhotoAdapter mCarPhotosAdapter;
private AreaGridListBean.RowsBean mSelGridBean;
private int mCurrentPhotoType;//当前选择图片的类型
private AddPhotoBean mCurrentBean;
private String mPicPath;
@Override
protected int setLayoutId() {
return R.layout.activity_car_manage_add;
}
@Override
public void initData() {
mBind = ButterKnife.bind(this);
mTvBaseTitle.setText("车辆信息录入");
refreshView(STATE_LOAD_SUCCESS);
initViews();
}
/**
* 初始化视图
*/
private void initViews() {
initCarPhoto();
mTvCarType.setOnClickListener(v -> onShowCarType());
mTvArea.setOnClickListener(v -> onShowArea());
mTvGrid.setOnClickListener(v -> {
if (TextUtils.isEmpty(mSelAreaCode)) {
ToastUtils.show("请选择所在地区");
} else {
ARouter.getInstance()
.build(PathConfig.PATH_MODULE_COMMON_ACTIVITY_SEL_GRID)
.withString("areaCode", mSelAreaCode)
.navigation(mActivity, 15);
}
});
mBtnSubmit.setOnClickListener(v -> doConfirm());
}
@Override
protected void doSearchByTitle() {
}
@Override
protected void clearSearch() {
}
private void initCarPhoto() {
AddPhotoBean bean = new AddPhotoBean();
mCarPhotos = new ArrayList<>();
mCarPhotos.add(bean);
mCarPhotosAdapter = new AddPhotoAdapter(mActivity, mCarPhotos);
GridLayoutManager gridLayoutManager = new GridLayoutManager(mActivity, 4) {
@Override
public boolean canScrollHorizontally() {
return false;
}
@Override
public boolean canScrollVertically() {
return false;
}
};
mRlvCarPhoto.setLayoutManager(gridLayoutManager);
mRlvCarPhoto.setAdapter(mCarPhotosAdapter);
mCarPhotosAdapter.addOnItemClickListener(addPhotoBean -> {
if (TextUtils.isEmpty(addPhotoBean.getId())) {
onShowSelectPhoto(addPhotoBean, 7);
} else {
ArrayList paths = new ArrayList();
paths.add(addPhotoBean.getPath());
ARouter.getInstance()
.build(PathConfig.PATH_MODULE_BASELIB_SHOW_IMG)
.withStringArrayList("imgUrls", paths)
.withInt("curItem", 0)
.navigation();
}
});
mCarPhotosAdapter.addOnDeleteListener((bean1, i) -> {
mCarPhotos.remove(bean1);
mCarPhotosAdapter.notifyDataSetChanged();
});
}
/**
* 显示选择图片
*
* @param bean
*/
private void onShowSelectPhoto(AddPhotoBean bean, int type) {
mCurrentPhotoType = type;
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;
ARouter.getInstance()
.build(PathConfig.PATH_MODULE_BASELIB_TAKE_PHOTO)
.withString("path", getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS).getPath())
.withString("type", "photo")
.navigation(mActivity, BaseUrlApi.CAMERA_REQUEST);
buttomDialogView.dismiss();
}
@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://相机
mPicPath = data.getStringExtra("name");
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;
}
} else if (resultCode == 222) {
if (requestCode == 15) {
//网格选择
mSelGridBean = (AreaGridListBean.RowsBean) data.getSerializableExtra("bean");
mTvGrid.setText(mSelGridBean.getGridName());
}
}
super.onActivityResult(requestCode, resultCode, data);
}
/**
* 上传文件
* 1 营业执照相片
* 2 门面照片
* 3 企业法人身份证正面 4 企业法人身份证反面
* 5 企业负责人身份证正面 6 负责人身份证反面
* 7 工作场所
*
* @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();
RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), file);
MultipartBody.Part body = MultipartBody.Part.createFormData("image", file.getName(), requestFile);
RetrofitManager.getInstance()
.create(BaseApiService.class)
.uploadImage(body, UserLgUtils.getToken())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<BaseSuccessBean>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(BaseSuccessBean baseUserBean) {
if (progressDialog != null && progressDialog.isShowing()) {
progressDialog.dismiss();
}
ToastUtils.show("上传成功");
switch (mCurrentPhotoType) {
case 7://工作场所
mCurrentBean.setId(baseUserBean.getData());
mCurrentBean.setPath(picPath);
if (mCarPhotos.size() < 9) {
mCarPhotos.add(new AddPhotoBean());
mCarPhotosAdapter.notifyDataSetChanged();
}
mCurrentBean = null;
break;
}
}
@Override
public void onError(Throwable e) {
if (progressDialog != null && progressDialog.isShowing()) {
progressDialog.dismiss();
}
ExceptionHandler.handleException(e);
}
@Override
public void onComplete() {
}
});
}
private void doConfirm() {
if (checkParams()) {
ProgressDialog dialog = UIUtil.initDialog(mActivity, "提交中...");
dialog.show();
RequestBody body = buildParams();
RetrofitManager.getInstance()
.create(GridApis.class)
.doSaveCar(body, UserLgUtils.getToken())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<SuccessBean>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onNext(@NonNull SuccessBean successBean) {
dialog.dismiss();
ToastUtils.show("录入成功");
setResult(13);
finish();
}
@Override
public void onError(@NonNull Throwable e) {
dialog.dismiss();
ExceptionHandler.handleException(e);
}
@Override
public void onComplete() {
}
});
}
}
/**
* 车辆类型
*/
private void onShowCarType() {
hideSoftKeyboard();
if (mCarTypeList != null && mCarTypeList.size() > 0) {
if (mCarTypePicker == null) {
mCarTypePicker = new OptionsPickerBuilder(mActivity, (o1, o2, o3, v) -> {
DicBean bean = mCarTypeList.get(o1);
mSelCarType = bean;
mTvCarType.setText(bean.getDataName());
})
.setTitleText("请选择")
.setCancelColor(Color.parseColor("#1189FF"))
.setSubmitColor(Color.parseColor("#1189FF"))
.setTitleColor(Color.parseColor("#1189FF"))
.build();
mCarTypePicker.setPicker(mCarTypeList);
}
mCarTypePicker.show();
} else {
getDicListByType(PathConfig.DIC_CAR_TYPE, 1);
}
}
/**
* 字典
*/
private void getDicListByType(String pId, int i) {
ProgressDialog dialog = UIUtil.initDialog(mActivity, "获取中...");
dialog.show();
RetrofitManager.getInstance()
.create(GridApis.class)
.getDictListAllByPid(pId, UserLgUtils.getToken())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<List<DicBean>>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onNext(@NonNull List<DicBean> beans) {
dialog.dismiss();
if (beans.size() > 0) {
switch (i) {
case 1://关注度
mCarTypeList = beans;
onShowCarType();
break;
}
} else {
ToastUtils.show("暂无数据");
}
}
@Override
public void onError(@NonNull Throwable e) {
dialog.dismiss();
ExceptionHandler.handleException(e);
}
@Override
public void onComplete() {
}
});
}
/**
* 显示地区选择
*/
private void onShowArea() {
AreaChooseDialog areaDialogView = new AreaChooseDialog.DialogBuilder(mActivity)
.setIsBackCancelable(false)
.setIscancelable(false)
.setDefault(true)
.build();
areaDialogView.addOnChoseListener((names, id, code) -> {
mTvArea.setText(names);
mSelAreaName = names;
mSelAreaCode = code;
mSelAreaId = id;
mSelGridBean = null;
mTvGrid.setText("");
areaDialogView.dismiss();
});
areaDialogView.show();
}
/**
* 校验参数
*/
private boolean checkParams() {
String carNumber = mEtCarNumber.getText().toString().trim();
if (TextUtils.isEmpty(carNumber)) {
ToastUtils.show("请输入车牌号");
return false;
}
String carName = mEtCarName.getText().toString().trim();
if (TextUtils.isEmpty(carName)) {
ToastUtils.show("请输入车辆名称");
return false;
}
return true;
}
private RequestBody buildParams() {
SaveCarBean bean = new SaveCarBean();
String carNumber = mEtCarNumber.getText().toString().trim();
bean.setCarNumber(carNumber);
String carName = mEtCarName.getText().toString().trim();
bean.setCarName(carName);
if (mSelCarType != null) {
bean.setCarTypeId(mSelCarType.getDataId());
bean.setCarTypeName(mSelCarType.getDataName());
}
if (mSelGridBean != null) {
bean.setGridName(mSelGridBean.getGridName());
bean.setGridCode(mSelGridBean.getGridCode());
}
if (mCarPhotos.size() >= 2) {
String ids = "";
for (int i = 0; i < mCarPhotos.size(); i++) {
if (!TextUtils.isEmpty(mCarPhotos.get(i).getId())) {
ids += mCarPhotos.get(i).getId() + ",";
}
}
ids = ids.substring(0, ids.length() - 1);
bean.setCarPhotos(ids);
}
if (!TextUtils.isEmpty(mSelAreaCode)) {
bean.setAreaCode(mSelAreaCode);
bean.setAreaName(mSelAreaName);
}
Gson gson = new Gson();
String obj = gson.toJson(bean);
return RequestBody.create(MediaType.parse("application/json; charset=utf-8"), obj);
}
}

View File

@ -0,0 +1,678 @@
package com.tengshisoft.gridmodule.incident.activitys.cars;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Intent;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.ProgressBar;
import android.widget.TextView;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.launcher.ARouter;
import com.google.gson.Gson;
import com.hjq.toast.ToastUtils;
import com.scwang.smart.refresh.layout.SmartRefreshLayout;
import com.tengshisoft.commonmodule.adapters.CarBelongPersonAdapter;
import com.tengshisoft.commonmodule.adapters.CarUsePersonAdapter;
import com.tengshisoft.commonmodule.beans.CarBelongPersonListBean;
import com.tengshisoft.commonmodule.beans.CarDetailBean;
import com.tengshisoft.commonmodule.beans.CarUsePersonListBean;
import com.tengshisoft.commonmodule.beans.SaveCarBelongPersonBean;
import com.tengshisoft.commonmodule.beans.SaveCarUsePersonBean;
import com.tengshisoft.commonmodule.beans.SuccessBean;
import com.tengshisoft.commonmodule.nets.GridApis;
import com.tengshisoft.gridmodule.R;
import com.tengshisoft.gridmodule.R2;
import com.tenlionsoft.baselib.constant.PathConfig;
import com.tenlionsoft.baselib.core.retrofit_net.BaseUrlApi;
import com.tenlionsoft.baselib.core.retrofit_net.RetrofitManager;
import com.tenlionsoft.baselib.core.widget.base.BaseActivity;
import com.tenlionsoft.baselib.core.widget.base.BaseShowPhotoAdapter;
import com.tenlionsoft.baselib.core.widget.views.AddCarPersonDialog;
import com.tenlionsoft.baselib.utils.ExceptionHandler;
import com.tenlionsoft.baselib.utils.UIUtil;
import com.tenlionsoft.baselib.utils.UserLgUtils;
import java.util.ArrayList;
import java.util.List;
import androidx.annotation.Nullable;
import androidx.core.widget.NestedScrollView;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.Unbinder;
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
import io.reactivex.rxjava3.annotations.NonNull;
import io.reactivex.rxjava3.core.Observable;
import io.reactivex.rxjava3.core.Observer;
import io.reactivex.rxjava3.disposables.Disposable;
import io.reactivex.rxjava3.schedulers.Schedulers;
import okhttp3.MediaType;
import okhttp3.RequestBody;
/**
* 作者: Adam
* 日期: 2021年11月08日09:54:01
* 邮箱: itgaojian@163.com
* 描述: 车辆信息-详情
*/
@Route(path = PathConfig.PATH_MODULE_GRID_ACTIVITY_CAR_MANAGE_DETAIL)
public class CarManageDetailActivity extends BaseActivity {
@BindView(R2.id.tv_car_number)
TextView mTvCarNumber;
@BindView(R2.id.tv_car_type)
TextView mTvCarType;
@BindView(R2.id.tv_car_name)
TextView mTvCarName;
@BindView(R2.id.tv_area)
TextView mTvArea;
@BindView(R2.id.tv_grid)
TextView mTvGrid;
@BindView(R2.id.rlv_car_photo)
RecyclerView mRlvCarPhoto;
@BindView(R2.id.tv_car_hint)
TextView mTvCarHint;
@BindView(R2.id.btn_bind)
Button mBtnBind;
@BindView(R2.id.rlv_belong_person)
RecyclerView mRlvBelongPerson;
@BindView(R2.id.btn_use)
Button mBtnUse;
@BindView(R2.id.rlv_use_person)
RecyclerView mRlvUsePerson;
@BindView(R2.id.nsv_content)
NestedScrollView mNsvContent;
@BindView(R2.id.srl_content)
SmartRefreshLayout mSrlContent;
@BindView(R2.id.tv_belong_hint)
TextView mTvBelongHint;
@BindView(R2.id.tv_use_hint)
TextView mTvUseHint;
@BindView(R2.id.btn_edit)
Button mBtnEdit;
@BindView(R2.id.btn_del)
Button mBtnDel;
private String mId;
private int mCurrentPage = 1;
private List<CarBelongPersonListBean.RowsBean> mBelongs;
private List<CarUsePersonListBean.RowsBean> mUses;
private CarBelongPersonAdapter mBelongPersonAdapter;
private CarUsePersonAdapter mUsePersonAdapter;
private int mUseTotal;
private int mBelongTotal;
private Unbinder mBind;
@Override
protected int setLayoutId() {
return R.layout.activity_car_manage_detail;
}
@Override
public void initData() {
mBind = ButterKnife.bind(this);
mId = getIntent().getStringExtra("id");
mTvBaseTitle.setText("车辆信息详情");
mBelongs = new ArrayList<>();
mBelongPersonAdapter = new CarBelongPersonAdapter(mActivity, mBelongs);
mRlvBelongPerson.setLayoutManager(new LinearLayoutManager(mActivity));
mRlvBelongPerson.setAdapter(mBelongPersonAdapter);
mUses = new ArrayList<>();
mUsePersonAdapter = new CarUsePersonAdapter(mActivity, mUses);
mRlvUsePerson.setLayoutManager(new LinearLayoutManager(mActivity));
mRlvUsePerson.setAdapter(mUsePersonAdapter);
mSrlContent.setOnRefreshListener(refreshLayout -> doRefresh());
mSrlContent.setOnLoadMoreListener(refreshLayout -> getPersons(mCurrentPage));
mBtnDel.setOnClickListener(v -> doDel());
mBtnEdit.setOnClickListener(v -> ARouter.getInstance()
.build(PathConfig.PATH_MODULE_GRID_ACTIVITY_CAR_MANAGE_EDIT)
.withString("id", mId)
.navigation(mActivity, 12));
mBtnBind.setOnClickListener(v -> onShowAddPersonDialog(1));
mBtnUse.setOnClickListener(v -> onShowAddPersonDialog(2));
mBelongPersonAdapter.addOnPatrolListener(new CarBelongPersonAdapter.OnEditOrDel() {
@Override
public void onEdit(CarBelongPersonListBean.RowsBean bean, int pos) {
ARouter.getInstance()
.build(PathConfig.PATH_MODULE_GRID_ACTIVITY_CAR_PERSON_EDIT)
.withString("id", bean.getCarBelongId())
.withString("carId", bean.getCarId())
.withString("type", "belong")
.navigation(mActivity, 12);
}
@Override
public void onDel(CarBelongPersonListBean.RowsBean bean, int pos) {
doDelBelongPerson(bean, pos);
}
});
mUsePersonAdapter.addOnPatrolListener(new CarUsePersonAdapter.OnEditOrDel() {
@Override
public void onEdit(CarUsePersonListBean.RowsBean bean, int pos) {
ARouter.getInstance()
.build(PathConfig.PATH_MODULE_GRID_ACTIVITY_CAR_PERSON_EDIT)
.withString("id", bean.getCarUserId())
.withString("carId", bean.getCarId())
.withString("type", "use")
.navigation(mActivity, 12);
}
@Override
public void onDel(CarUsePersonListBean.RowsBean bean, int pos) {
doDelUsePerson(bean, pos);
}
});
getDetailData();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable @org.jetbrains.annotations.Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 12) {
if (resultCode == 13) {
doRefresh();
}
}
}
/**
* 删除所属人
*/
private void doDelBelongPerson(CarBelongPersonListBean.RowsBean bean, int pos) {
AlertDialog.Builder builder = new AlertDialog.Builder(mActivity);
builder.setTitle("提示")
.setMessage("确定要删除该所属人信息吗?")
.setPositiveButton("确定", (dialog, which) -> {
dialog.dismiss();
ProgressDialog dialog1 = UIUtil.initDialog(mActivity, "删除中...");
dialog1.show();
RetrofitManager.getInstance()
.create(GridApis.class)
.doDelCarBelong(bean.getCarBelongId(), UserLgUtils.getToken())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<SuccessBean>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onNext(@NonNull SuccessBean successBean) {
dialog1.dismiss();
ToastUtils.show("删除成功");
mBelongs.remove(bean);
--mBelongTotal;
if (mBelongTotal == 0) {
mTvBelongHint.setVisibility(View.VISIBLE);
} else {
mTvBelongHint.setVisibility(View.GONE);
}
mBelongPersonAdapter.notifyDataSetChanged();
}
@Override
public void onError(@NonNull Throwable e) {
dialog1.dismiss();
ExceptionHandler.handleException(e);
}
@Override
public void onComplete() {
}
});
})
.setNegativeButton("取消", (dialog, which) -> dialog.dismiss())
.create()
.show();
}
/**
* 删除使用人
*/
private void doDelUsePerson(CarUsePersonListBean.RowsBean bean, int pos) {
AlertDialog.Builder builder = new AlertDialog.Builder(mActivity);
builder.setTitle("提示")
.setMessage("确定要删除该使用人信息吗?")
.setPositiveButton("确定", (dialog, which) -> {
dialog.dismiss();
ProgressDialog dialog1 = UIUtil.initDialog(mActivity, "删除中...");
dialog1.show();
RetrofitManager.getInstance()
.create(GridApis.class)
.doDelCarUse(bean.getCarUserId(), UserLgUtils.getToken())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<SuccessBean>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onNext(@NonNull SuccessBean successBean) {
dialog1.dismiss();
ToastUtils.show("删除成功");
mUses.remove(bean);
--mUseTotal;
if (mUseTotal == 0) {
mTvUseHint.setVisibility(View.VISIBLE);
} else {
mTvUseHint.setVisibility(View.GONE);
}
mUsePersonAdapter.notifyDataSetChanged();
}
@Override
public void onError(@NonNull Throwable e) {
dialog1.dismiss();
ExceptionHandler.handleException(e);
}
@Override
public void onComplete() {
}
});
})
.setNegativeButton("取消", (dialog, which) -> dialog.dismiss())
.create()
.show();
}
/**
* 删除车辆
*/
private void doDel() {
AlertDialog.Builder builder = new AlertDialog.Builder(mActivity);
builder.setTitle("提示")
.setMessage("确定要删除该车辆信息吗?")
.setPositiveButton("确定", (dialog, which) -> {
dialog.dismiss();
ProgressDialog dialog1 = UIUtil.initDialog(mActivity, "删除中...");
dialog1.show();
RetrofitManager.getInstance()
.create(GridApis.class)
.doDelCarOrg(mId, UserLgUtils.getToken())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<SuccessBean>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onNext(@NonNull SuccessBean successBean) {
dialog1.dismiss();
ToastUtils.show("删除成功");
setResult(13);
finish();
}
@Override
public void onError(@NonNull Throwable e) {
dialog1.dismiss();
ExceptionHandler.handleException(e);
}
@Override
public void onComplete() {
}
});
})
.setNegativeButton("取消", (dialog, which) -> dialog.dismiss())
.create()
.show();
}
/**
* 刷新
*/
private void doRefresh() {
mCurrentPage = 1;
mUses.clear();
mBelongs.clear();
mBelongTotal = 0;
mUseTotal = 0;
getDetailData();
}
@Override
protected void doSearchByTitle() {
}
@Override
protected void clearSearch() {
}
/**
* 获取详情
*/
private void getDetailData() {
RetrofitManager.getInstance()
.create(GridApis.class)
.getCarDetailById(mId, UserLgUtils.getToken())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<CarDetailBean>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onNext(@NonNull CarDetailBean socialOrgDetailBean) {
setDataToView(socialOrgDetailBean);
}
@Override
public void onError(@NonNull Throwable e) {
refreshView(STATE_LOAD_ERROR);
ExceptionHandler.handleException(e);
}
@Override
public void onComplete() {
}
});
}
/**
* 回显数据
*/
private void setDataToView(CarDetailBean bean) {
refreshView(STATE_LOAD_SUCCESS);
mTvCarNumber.setText(bean.getCarNumber());
mTvCarName.setText(bean.getCarName());
mTvCarType.setText(bean.getCarTypeName());
mTvArea.setText(bean.getAreaName());
mTvGrid.setText(bean.getGridName());
if (!TextUtils.isEmpty(bean.getCarPhotos())) {
mRlvCarPhoto.setVisibility(View.VISIBLE);
mTvCarHint.setVisibility(View.GONE);
String[] split = bean.getCarPhotos().split(",");
ArrayList<String> paths = new ArrayList<>();
BaseShowPhotoAdapter mAdapter = new BaseShowPhotoAdapter(mActivity, paths);
mRlvCarPhoto.setLayoutManager(new GridLayoutManager(mActivity, 4));
mRlvCarPhoto.setAdapter(mAdapter);
mAdapter.setOnItemClickListener((data, pos) -> ARouter.getInstance()
.build(PathConfig.PATH_MODULE_BASELIB_SHOW_IMG)
.withStringArrayList("imgUrls", paths)
.withInt("curItem", pos)
.navigation());
for (String doorId : split) {
if (!TextUtils.isEmpty(doorId)) {
paths.add(BaseUrlApi.BASE_IMG_URL + doorId);
}
}
mAdapter.setData(paths);
} else {
mRlvCarPhoto.setVisibility(View.GONE);
mTvCarHint.setVisibility(View.VISIBLE);
}
getPersons(mCurrentPage);
}
/**
* 获取人员
*/
private void getPersons(int page) {
mCurrentPage = page;
Observable<CarBelongPersonListBean> carBelongPersonList = RetrofitManager.getInstance().create(GridApis.class).getCarBelongPersonList(page + "", UserLgUtils.getToken());
Observable<CarUsePersonListBean> carUsePersonList = RetrofitManager.getInstance().create(GridApis.class).getCarUsePersonList(page + "", UserLgUtils.getToken());
Observable.merge(carBelongPersonList, carUsePersonList)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<Object>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onNext(@NonNull Object o) {
if (o instanceof CarBelongPersonListBean) {
++mCurrentPage;
//所属人
CarBelongPersonListBean belongPersonListBean = (CarBelongPersonListBean) o;
mBelongTotal = belongPersonListBean.getTotal();
if (mBelongTotal > 0) {
mRlvBelongPerson.setVisibility(View.VISIBLE);
mTvBelongHint.setVisibility(View.GONE);
} else {
mRlvBelongPerson.setVisibility(View.GONE);
mTvBelongHint.setVisibility(View.VISIBLE);
}
mBelongs.addAll(belongPersonListBean.getRows());
mBelongPersonAdapter.setData(mBelongs);
} else {
//使用人
CarUsePersonListBean usePersonListBean = (CarUsePersonListBean) o;
mUseTotal = usePersonListBean.getTotal();
if (mUseTotal > 0) {
mRlvUsePerson.setVisibility(View.VISIBLE);
mTvUseHint.setVisibility(View.GONE);
} else {
mRlvUsePerson.setVisibility(View.GONE);
mTvUseHint.setVisibility(View.VISIBLE);
}
mUses.addAll(usePersonListBean.getRows());
mUsePersonAdapter.setData(mUses);
}
mSrlContent.finishRefresh();
mSrlContent.finishLoadMore();
if (mBelongs.size() >= mBelongTotal && mUses.size() >= mUseTotal) {
mSrlContent.setNoMoreData(true);
} else {
mSrlContent.setNoMoreData(false);
}
}
@Override
public void onError(@NonNull Throwable e) {
ExceptionHandler.handleException(e);
refreshView(STATE_LOAD_ERROR);
mSrlContent.finishRefresh();
mSrlContent.finishLoadMore();
}
@Override
public void onComplete() {
}
});
}
/**
* 显示添加人员
*
* @param type
*/
private void onShowAddPersonDialog(int type) {
AddCarPersonDialog dialog = new AddCarPersonDialog.DialogBuilder(mActivity).build();
dialog.addOnChangeListener((name, idcard, phone, startTime, endTime, isUse, type1) -> {
dialog.dismiss();
if (type1 == 2) {
//同时添加
doAddBoth(name, idcard, phone, startTime, endTime, isUse);
} else {
if (type == 1) {
//所属人
doAddBelong(name, idcard, phone, startTime, endTime, isUse);
} else {
//使用人
doAddUse(name, idcard, phone, startTime, endTime, isUse);
}
}
});
dialog.show();
}
private int count = 0;
/**
* 同时添加
*/
private void doAddBoth(String name, String idcard, String phone, String startTime, String endTime, String isUse) {
ProgressDialog dialog = UIUtil.initDialog(mActivity, "添加中...");
dialog.show();
RequestBody useBody = buildUsePerson(name, idcard, phone, startTime, endTime, isUse);
RequestBody belongBody = buildBelongPerson(name, idcard, phone, startTime, endTime, isUse);
Observable<SuccessBean> success1 = RetrofitManager.getInstance()
.create(GridApis.class)
.doSaveCarBelong(belongBody, UserLgUtils.getToken());
Observable<SuccessBean> useSuccess = RetrofitManager.getInstance()
.create(GridApis.class)
.doSaveCarUse(useBody, UserLgUtils.getToken());
Observable.merge(success1, useSuccess)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<SuccessBean>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onNext(@NonNull SuccessBean successBean) {
++count;
if (count >= 2) {
dialog.dismiss();
ToastUtils.show("添加成功");
doRefresh();
}
}
@Override
public void onError(@NonNull Throwable e) {
count = 0;
dialog.dismiss();
ExceptionHandler.handleException(e);
}
@Override
public void onComplete() {
}
});
}
private void doAddUse(String name, String idcard, String phone, String startTime, String endTime, String isUse) {
ProgressDialog dialog = UIUtil.initDialog(mActivity, "添加中...");
dialog.show();
RequestBody body = buildUsePerson(name, idcard, phone, startTime, endTime, isUse);
RetrofitManager.getInstance()
.create(GridApis.class)
.doSaveCarUse(body, UserLgUtils.getToken())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<SuccessBean>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onNext(@NonNull SuccessBean successBean) {
dialog.dismiss();
ToastUtils.show("添加成功");
doRefresh();
}
@Override
public void onError(@NonNull Throwable e) {
dialog.dismiss();
ExceptionHandler.handleException(e);
}
@Override
public void onComplete() {
}
});
}
private void doAddBelong(String name, String idcard, String phone, String startTime, String endTime, String isUse) {
ProgressDialog dialog = UIUtil.initDialog(mActivity, "添加中...");
dialog.show();
RequestBody body = buildBelongPerson(name, idcard, phone, startTime, endTime, isUse);
RetrofitManager.getInstance()
.create(GridApis.class)
.doSaveCarBelong(body, UserLgUtils.getToken())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<SuccessBean>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onNext(@NonNull SuccessBean successBean) {
dialog.dismiss();
ToastUtils.show("添加成功");
doRefresh();
}
@Override
public void onError(@NonNull Throwable e) {
dialog.dismiss();
ExceptionHandler.handleException(e);
}
@Override
public void onComplete() {
}
});
}
private RequestBody buildBelongPerson(String name, String idcard, String phone, String stardate, String enddate, String isuse) {
SaveCarBelongPersonBean bean = new SaveCarBelongPersonBean();
bean.setCarId(mId);
bean.setBelongName(name);
bean.setBelongIdCard(idcard);
bean.setBelongPhone(phone);
bean.setBelongStartTime(stardate);
bean.setBelongEndTime(enddate);
bean.setIsUse(Integer.parseInt(isuse));
Gson gson = new Gson();
String obj = gson.toJson(bean);
return RequestBody.create(MediaType.parse("application/json; charset=utf-8"), obj);
}
private RequestBody buildUsePerson(String name, String idcard, String phone, String stardate, String enddate, String isuse) {
SaveCarUsePersonBean bean = new SaveCarUsePersonBean();
bean.setCarId(mId);
bean.setUserName(name);
bean.setUserIdCard(idcard);
bean.setUserPhone(phone);
bean.setUseStartTime(stardate);
bean.setUseEndTime(enddate);
bean.setIsUse(Integer.parseInt(isuse));
Gson gson = new Gson();
String obj = gson.toJson(bean);
return RequestBody.create(MediaType.parse("application/json; charset=utf-8"), obj);
}
}

View File

@ -0,0 +1,589 @@
package com.tengshisoft.gridmodule.incident.activitys.cars;
import android.app.ProgressDialog;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Color;
import android.net.Uri;
import android.os.Environment;
import android.provider.MediaStore;
import android.text.TextUtils;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.launcher.ARouter;
import com.bigkoo.pickerview.builder.OptionsPickerBuilder;
import com.bigkoo.pickerview.view.OptionsPickerView;
import com.google.gson.Gson;
import com.hjq.toast.ToastUtils;
import com.tengshisoft.commonmodule.beans.AreaGridListBean;
import com.tengshisoft.commonmodule.beans.CarDetailBean;
import com.tengshisoft.commonmodule.beans.SaveCarBean;
import com.tengshisoft.commonmodule.beans.SuccessBean;
import com.tengshisoft.commonmodule.nets.GridApis;
import com.tengshisoft.gridmodule.R;
import com.tengshisoft.gridmodule.R2;
import com.tenlionsoft.baselib.constant.PathConfig;
import com.tenlionsoft.baselib.core.beans.AddPhotoBean;
import com.tenlionsoft.baselib.core.beans.BaseSuccessBean;
import com.tenlionsoft.baselib.core.beans.DicBean;
import com.tenlionsoft.baselib.core.retrofit_net.BaseUrlApi;
import com.tenlionsoft.baselib.core.retrofit_net.RetrofitManager;
import com.tenlionsoft.baselib.core.retrofit_net.api.BaseApiService;
import com.tenlionsoft.baselib.core.widget.base.AddPhotoAdapter;
import com.tenlionsoft.baselib.core.widget.base.BaseActivity;
import com.tenlionsoft.baselib.core.widget.base.BaseShowPhotoAdapter;
import com.tenlionsoft.baselib.core.widget.views.AreaChooseDialog;
import com.tenlionsoft.baselib.core.widget.views.ButtomDialogView;
import com.tenlionsoft.baselib.utils.ExceptionHandler;
import com.tenlionsoft.baselib.utils.UIUtil;
import com.tenlionsoft.baselib.utils.UserLgUtils;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import androidx.core.widget.NestedScrollView;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.Unbinder;
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
import io.reactivex.rxjava3.annotations.NonNull;
import io.reactivex.rxjava3.core.Observer;
import io.reactivex.rxjava3.disposables.Disposable;
import io.reactivex.rxjava3.schedulers.Schedulers;
import okhttp3.MediaType;
import okhttp3.MultipartBody;
import okhttp3.RequestBody;
/**
* 作者: Adam
* 日期: 2021年11月08日09:52:33
* 邮箱: itgaojian@163.com
* 描述: 车辆信息-编辑
*/
@Route(path = PathConfig.PATH_MODULE_GRID_ACTIVITY_CAR_MANAGE_EDIT)
public class CarManageEditActivity extends BaseActivity {
@BindView(R2.id.tv_issue_base_info)
TextView mTvIssueBaseInfo;
@BindView(R2.id.et_car_number)
EditText mEtCarNumber;
@BindView(R2.id.tv_car_type)
TextView mTvCarType;
@BindView(R2.id.et_car_name)
EditText mEtCarName;
@BindView(R2.id.tv_area)
TextView mTvArea;
@BindView(R2.id.tv_grid)
TextView mTvGrid;
@BindView(R2.id.rlv_car_photo)
RecyclerView mRlvCarPhoto;
@BindView(R2.id.btn_submit)
Button mBtnSubmit;
@BindView(R2.id.nsv_content)
NestedScrollView mNsvContent;
private Unbinder mBind;
private DicBean mSelCarType;
private String mSelAreaCode;
private String mSelAreaId;
private String mSelAreaName;
private List<DicBean> mCarTypeList;
private OptionsPickerView mCarTypePicker;
private List<AddPhotoBean> mCarPhotos;
private AddPhotoAdapter mCarPhotosAdapter;
private AreaGridListBean.RowsBean mSelGridBean;
private int mCurrentPhotoType;//当前选择图片的类型
private AddPhotoBean mCurrentBean;
private String mPicPath;
private String mId;
@Override
protected int setLayoutId() {
return R.layout.activity_car_manage_edit;
}
@Override
public void initData() {
mBind = ButterKnife.bind(this);
mId = getIntent().getStringExtra("id");
mTvBaseTitle.setText("车辆信息编辑");
initViews();
getDetailData();
}
private void initViews() {
initCarPhoto();
mTvCarType.setOnClickListener(v -> onShowCarType());
mTvArea.setOnClickListener(v -> onShowArea());
mTvGrid.setOnClickListener(v -> {
if (TextUtils.isEmpty(mSelAreaCode)) {
ToastUtils.show("请选择所在地区");
} else {
ARouter.getInstance()
.build(PathConfig.PATH_MODULE_COMMON_ACTIVITY_SEL_GRID)
.withString("areaCode", mSelAreaCode)
.navigation(mActivity, 15);
}
});
mBtnSubmit.setOnClickListener(v -> doConfirm());
}
private void getDetailData() {
RetrofitManager.getInstance()
.create(GridApis.class)
.getCarDetailById(mId, UserLgUtils.getToken())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<CarDetailBean>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onNext(@NonNull CarDetailBean socialOrgDetailBean) {
setDataToView(socialOrgDetailBean);
}
@Override
public void onError(@NonNull Throwable e) {
refreshView(STATE_LOAD_ERROR);
ExceptionHandler.handleException(e);
}
@Override
public void onComplete() {
}
});
}
/**
* 回显数据
*/
private void setDataToView(CarDetailBean bean) {
refreshView(STATE_LOAD_SUCCESS);
mEtCarNumber.setText(bean.getCarNumber());
mEtCarName.setText(bean.getCarName());
mTvCarType.setText(bean.getCarTypeName());
if (!TextUtils.isEmpty(bean.getCarTypeId())) {
mSelCarType = new DicBean();
mSelCarType.setDataId(bean.getCarTypeId());
mSelCarType.setDataName(bean.getCarTypeName());
}
mTvArea.setText(bean.getAreaName());
if (!TextUtils.isEmpty(bean.getAreaName())) {
mSelAreaCode = bean.getAreaCode();
mSelAreaName = bean.getAreaName();
}
mTvGrid.setText(bean.getGridName());
if (!TextUtils.isEmpty(bean.getGridCode())) {
mSelGridBean = new AreaGridListBean.RowsBean();
mSelGridBean.setGridName(bean.getGridName());
mSelGridBean.setGridCode(bean.getGridCode());
}
if (!TextUtils.isEmpty(bean.getCarPhotos())) {
String[] split = bean.getCarPhotos().split(",");
mCarPhotos.clear();
for (String doorId : split) {
if (!TextUtils.isEmpty(doorId)) {
AddPhotoBean addPhotoBean = new AddPhotoBean();
String path = BaseUrlApi.BASE_IMG_URL + doorId;
addPhotoBean.setId(doorId);
addPhotoBean.setPath(path);
mCarPhotos.add(addPhotoBean);
}
}
mCarPhotos.add(new AddPhotoBean());
mCarPhotosAdapter.setData(mCarPhotos);
}
}
@Override
protected void doSearchByTitle() {
}
@Override
protected void clearSearch() {
}
private void initCarPhoto() {
AddPhotoBean bean = new AddPhotoBean();
mCarPhotos = new ArrayList<>();
mCarPhotos.add(bean);
mCarPhotosAdapter = new AddPhotoAdapter(mActivity, mCarPhotos);
GridLayoutManager gridLayoutManager = new GridLayoutManager(mActivity, 4) {
@Override
public boolean canScrollHorizontally() {
return false;
}
@Override
public boolean canScrollVertically() {
return false;
}
};
mRlvCarPhoto.setLayoutManager(gridLayoutManager);
mRlvCarPhoto.setAdapter(mCarPhotosAdapter);
mCarPhotosAdapter.addOnItemClickListener(addPhotoBean -> {
if (TextUtils.isEmpty(addPhotoBean.getId())) {
onShowSelectPhoto(addPhotoBean, 7);
} else {
ArrayList paths = new ArrayList();
paths.add(addPhotoBean.getPath());
ARouter.getInstance()
.build(PathConfig.PATH_MODULE_BASELIB_SHOW_IMG)
.withStringArrayList("imgUrls", paths)
.withInt("curItem", 0)
.navigation();
}
});
mCarPhotosAdapter.addOnDeleteListener((bean1, i) -> {
mCarPhotos.remove(bean1);
mCarPhotosAdapter.notifyDataSetChanged();
});
}
/**
* 显示选择图片
*
* @param bean
*/
private void onShowSelectPhoto(AddPhotoBean bean, int type) {
mCurrentPhotoType = type;
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;
ARouter.getInstance()
.build(PathConfig.PATH_MODULE_BASELIB_TAKE_PHOTO)
.withString("path", getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS).getPath())
.withString("type", "photo")
.navigation(mActivity, BaseUrlApi.CAMERA_REQUEST);
buttomDialogView.dismiss();
}
@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://相机
mPicPath = data.getStringExtra("name");
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;
}
} else if (resultCode == 222) {
if (requestCode == 15) {
//网格选择
mSelGridBean = (AreaGridListBean.RowsBean) data.getSerializableExtra("bean");
mTvGrid.setText(mSelGridBean.getGridName());
}
}
super.onActivityResult(requestCode, resultCode, data);
}
/**
* 上传文件
* 1 营业执照相片
* 2 门面照片
* 3 企业法人身份证正面 4 企业法人身份证反面
* 5 企业负责人身份证正面 6 负责人身份证反面
* 7 工作场所
*
* @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();
RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), file);
MultipartBody.Part body = MultipartBody.Part.createFormData("image", file.getName(), requestFile);
RetrofitManager.getInstance()
.create(BaseApiService.class)
.uploadImage(body, UserLgUtils.getToken())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<BaseSuccessBean>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(BaseSuccessBean baseUserBean) {
if (progressDialog != null && progressDialog.isShowing()) {
progressDialog.dismiss();
}
ToastUtils.show("上传成功");
switch (mCurrentPhotoType) {
case 7://工作场所
mCurrentBean.setId(baseUserBean.getData());
mCurrentBean.setPath(picPath);
if (mCarPhotos.size() < 9) {
mCarPhotos.add(new AddPhotoBean());
mCarPhotosAdapter.notifyDataSetChanged();
}
mCurrentBean = null;
break;
}
}
@Override
public void onError(Throwable e) {
if (progressDialog != null && progressDialog.isShowing()) {
progressDialog.dismiss();
}
ExceptionHandler.handleException(e);
}
@Override
public void onComplete() {
}
});
}
private void doConfirm() {
if (checkParams()) {
ProgressDialog dialog = UIUtil.initDialog(mActivity, "提交中...");
dialog.show();
RequestBody body = buildParams();
RetrofitManager.getInstance()
.create(GridApis.class)
.doEditCar(mId, body, UserLgUtils.getToken())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<SuccessBean>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onNext(@NonNull SuccessBean successBean) {
dialog.dismiss();
ToastUtils.show("编辑成功");
setResult(13);
finish();
}
@Override
public void onError(@NonNull Throwable e) {
dialog.dismiss();
ExceptionHandler.handleException(e);
}
@Override
public void onComplete() {
}
});
}
}
/**
* 车辆类型
*/
private void onShowCarType() {
hideSoftKeyboard();
if (mCarTypeList != null && mCarTypeList.size() > 0) {
if (mCarTypePicker == null) {
mCarTypePicker = new OptionsPickerBuilder(mActivity, (o1, o2, o3, v) -> {
DicBean bean = mCarTypeList.get(o1);
mSelCarType = bean;
mTvCarType.setText(bean.getDataName());
})
.setTitleText("请选择")
.setCancelColor(Color.parseColor("#1189FF"))
.setSubmitColor(Color.parseColor("#1189FF"))
.setTitleColor(Color.parseColor("#1189FF"))
.build();
mCarTypePicker.setPicker(mCarTypeList);
}
mCarTypePicker.show();
} else {
getDicListByType(PathConfig.DIC_CAR_TYPE, 1);
}
}
/**
* 字典
*/
private void getDicListByType(String pId, int i) {
ProgressDialog dialog = UIUtil.initDialog(mActivity, "获取中...");
dialog.show();
RetrofitManager.getInstance()
.create(GridApis.class)
.getDictListAllByPid(pId, UserLgUtils.getToken())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<List<DicBean>>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onNext(@NonNull List<DicBean> beans) {
dialog.dismiss();
if (beans.size() > 0) {
switch (i) {
case 1://关注度
mCarTypeList = beans;
onShowCarType();
break;
}
} else {
ToastUtils.show("暂无数据");
}
}
@Override
public void onError(@NonNull Throwable e) {
dialog.dismiss();
ExceptionHandler.handleException(e);
}
@Override
public void onComplete() {
}
});
}
/**
* 显示地区选择
*/
private void onShowArea() {
AreaChooseDialog areaDialogView = new AreaChooseDialog.DialogBuilder(mActivity)
.setIsBackCancelable(false)
.setIscancelable(false)
.setDefault(true)
.build();
areaDialogView.addOnChoseListener((names, id, code) -> {
mTvArea.setText(names);
mSelAreaName = names;
mSelAreaCode = code;
mSelAreaId = id;
mSelGridBean = null;
mTvGrid.setText("");
areaDialogView.dismiss();
});
areaDialogView.show();
}
/**
* 校验参数
*/
private boolean checkParams() {
String carNumber = mEtCarNumber.getText().toString().trim();
if (TextUtils.isEmpty(carNumber)) {
ToastUtils.show("请输入车牌号");
return false;
}
String carName = mEtCarName.getText().toString().trim();
if (TextUtils.isEmpty(carName)) {
ToastUtils.show("请输入车辆名称");
return false;
}
return true;
}
private RequestBody buildParams() {
SaveCarBean bean = new SaveCarBean();
String carNumber = mEtCarNumber.getText().toString().trim();
bean.setCarNumber(carNumber);
String carName = mEtCarName.getText().toString().trim();
bean.setCarName(carName);
if (mSelCarType != null) {
bean.setCarTypeId(mSelCarType.getDataId());
bean.setCarTypeName(mSelCarType.getDataName());
}
if (mSelGridBean != null) {
bean.setGridName(mSelGridBean.getGridName());
bean.setGridCode(mSelGridBean.getGridCode());
}
if (mCarPhotos.size() >= 2) {
String ids = "";
for (int i = 0; i < mCarPhotos.size(); i++) {
if (!TextUtils.isEmpty(mCarPhotos.get(i).getId())) {
ids += mCarPhotos.get(i).getId() + ",";
}
}
ids = ids.substring(0, ids.length() - 1);
bean.setCarPhotos(ids);
}
if (!TextUtils.isEmpty(mSelAreaCode)) {
bean.setAreaCode(mSelAreaCode);
bean.setAreaName(mSelAreaName);
}
Gson gson = new Gson();
String obj = gson.toJson(bean);
return RequestBody.create(MediaType.parse("application/json; charset=utf-8"), obj);
}
}

View File

@ -0,0 +1,321 @@
package com.tengshisoft.gridmodule.incident.activitys.cars;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.Unbinder;
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
import io.reactivex.rxjava3.annotations.NonNull;
import io.reactivex.rxjava3.core.Observer;
import io.reactivex.rxjava3.disposables.Disposable;
import io.reactivex.rxjava3.schedulers.Schedulers;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Intent;
import android.text.TextUtils;
import android.view.View;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.TextView;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.launcher.ARouter;
import com.hjq.toast.ToastUtils;
import com.scwang.smart.refresh.layout.SmartRefreshLayout;
import com.tengshisoft.commonmodule.adapters.CarListAdapter;
import com.tengshisoft.commonmodule.adapters.ComponentAdapter;
import com.tengshisoft.commonmodule.beans.CarListBean;
import com.tengshisoft.commonmodule.beans.ComponentListBean;
import com.tengshisoft.commonmodule.beans.SuccessBean;
import com.tengshisoft.commonmodule.nets.GridApis;
import com.tengshisoft.gridmodule.R;
import com.tengshisoft.gridmodule.R2;
import com.tenlionsoft.baselib.constant.PathConfig;
import com.tenlionsoft.baselib.core.retrofit_net.RetrofitManager;
import com.tenlionsoft.baselib.core.widget.base.BaseActivity;
import com.tenlionsoft.baselib.utils.ExceptionHandler;
import com.tenlionsoft.baselib.utils.UIUtil;
import com.tenlionsoft.baselib.utils.UserLgUtils;
import java.util.ArrayList;
import java.util.List;
/**
* 作者: Adam
* 日期: 2021年11月08日09:47:43
* 邮箱: itgaojian@163.com
* 描述:实有车联管理--列表
*/
@Route(path = PathConfig.PATH_MODULE_GRID_ACTIVITY_CAR_MANAGE_LIST)
public class CarManageListActivity extends BaseActivity {
@BindView(R2.id.rlv_components)
RecyclerView mRlvComponents;
@BindView(R2.id.srl_content)
SmartRefreshLayout mSrlContent;
@BindView(R2.id.pb_loading)
ProgressBar mPbLoading;
@BindView(R2.id.iv_empty_data)
ImageView mIvEmptyData;
@BindView(R2.id.tv_error_hint)
TextView mTvErrorHint;
private Unbinder mBind;
private List<CarListBean.RowsBean> mDatas;
private CarListAdapter mAdapter;
private int mCurrentPage = 1;
private String mKeywords = "";
@Override
protected int setLayoutId() {
return R.layout.activity_car_manage_list;
}
@Override
public void initData() {
mBind = ButterKnife.bind(this);
mTvBaseTitle.setText("实有车辆管理");
refreshView(STATE_LOAD_SUCCESS);
mDatas = new ArrayList<>();
mEtAppSearchContent.setHint("请输入车牌号(车主姓名)查询");
mIvAppSearchIcon.setVisibility(View.VISIBLE);
mTvPublish.setVisibility(View.VISIBLE);
mTvPublish.setText("录入");
mTvPublish.setOnClickListener(v -> ARouter.getInstance()
.build(PathConfig.PATH_MODULE_GRID_ACTIVITY_CAR_MANAGE_ADD)
.navigation(mActivity, 12));
mAdapter = new CarListAdapter(mActivity, mDatas);
mRlvComponents.setLayoutManager(new LinearLayoutManager(mActivity));
mRlvComponents.setAdapter(mAdapter);
mSrlContent.setOnRefreshListener(v -> doRefresh());
mSrlContent.setOnLoadMoreListener(v -> doLoadMore());
setStateView(13);
getCarList(mCurrentPage);
mAdapter.addOnItemClickListener(v -> ARouter.getInstance()
.build(PathConfig.PATH_MODULE_GRID_ACTIVITY_CAR_MANAGE_DETAIL)
.withString("id", v.getCarId())
.navigation(mActivity, 12));
}
@Override
protected void clearSearch() {
mKeywords = "";
doRefresh();
}
@Override
protected void doSearchByTitle() {
doSearch();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 12) {
if (resultCode == 13) {
doRefresh();
}
}
}
/**
* 删除数据
*
* @param bean
* @param pos
*/
private void doDelBean(ComponentListBean.RowsBean bean, int pos) {
AlertDialog.Builder builder = new AlertDialog.Builder(mActivity);
builder.setTitle("提示")
.setMessage("确定要删除该部件吗?")
.setPositiveButton("确定", (dialog, which) -> {
dialog.dismiss();
ProgressDialog dialog1 = UIUtil.initDialog(mActivity, "删除中...");
dialog1.show();
RetrofitManager.getInstance()
.create(GridApis.class)
.doDelPart(bean.getTypePartsId(), UserLgUtils.getToken())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<SuccessBean>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onNext(@NonNull SuccessBean successBean) {
ToastUtils.show("删除成功");
mDatas.remove(bean);
mAdapter.notifyDataSetChanged();
dialog1.dismiss();
}
@Override
public void onError(@NonNull Throwable e) {
dialog1.dismiss();
ExceptionHandler.handleException(e);
}
@Override
public void onComplete() {
}
});
})
.setNegativeButton("取消", (dialog, which) -> dialog.dismiss())
.create()
.show();
}
/**
* 获取片区内的部件列表
*/
private void getCarList(int currentPage) {
mCurrentPage = currentPage;
RetrofitManager.getInstance()
.create(GridApis.class)
.getCarList(mKeywords, mCurrentPage + "", UserLgUtils.getToken())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<CarListBean>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onNext(@NonNull CarListBean communityListBean) {
if (communityListBean.getRows() != null && communityListBean.getRows().size() > 0) {
++mCurrentPage;
if (currentPage == 1) {
mDatas.clear();
mDatas.addAll(communityListBean.getRows());
} else {
mDatas.addAll(communityListBean.getRows());
}
setStateView(14);
mAdapter.notifyDataSetChanged();
mSrlContent.finishRefresh();
if (mDatas.size() >= communityListBean.getTotal()) {
mSrlContent.finishLoadMore();
mSrlContent.setNoMoreData(true);
} else {
mSrlContent.finishLoadMore();
mSrlContent.setNoMoreData(false);
}
} else {
if (currentPage > 1) {
mSrlContent.finishLoadMore();
mSrlContent.setNoMoreData(true);
setStateView(14);
} else {
if (TextUtils.isEmpty(mKeywords)) {
//无数据
setStateView(15);
} else {
setStateView(15);
ToastUtils.show("未查询到相关内容");
}
}
}
}
@Override
public void onError(@NonNull Throwable e) {
mSrlContent.finishLoadMore();
mSrlContent.finishRefresh();
ExceptionHandler.handleException(e);
setStateView(16);
}
@Override
public void onComplete() {
}
});
}
//加载更多
private void doLoadMore() {
getCarList(mCurrentPage);
}
//刷新
private void doRefresh() {
mDatas.clear();
mAdapter.setData(mDatas);
getCarList(1);
}
/**
* 搜索
*/
private void doSearch() {
String searchContent = mEtAppSearchContent.getText().toString().trim();
if (!TextUtils.isEmpty(searchContent)) {
hideSoftKeyboard();
setStateView(13);
mKeywords = searchContent;
mCurrentPage = 1;
getCarList(mCurrentPage);
} else {
ToastUtils.show("请输入要查询的内容");
}
}
/**
* 根据状态显示
* 12 默认
* 13 搜索中
* 14 搜索完成有数据
* 15 搜索完成没有数据
* 16 搜索失败
*
* @param state
*/
private void setStateView(int state) {
switch (state) {
case 12://默认
mPbLoading.setVisibility(View.GONE);
mSrlContent.setVisibility(View.GONE);
mIvEmptyData.setVisibility(View.VISIBLE);
mTvErrorHint.setVisibility(View.VISIBLE);
mTvErrorHint.setText("暂无数据");
break;
case 13://搜索中
mPbLoading.setVisibility(View.VISIBLE);
mSrlContent.setVisibility(View.GONE);
mIvEmptyData.setVisibility(View.GONE);
mTvErrorHint.setVisibility(View.VISIBLE);
mTvErrorHint.setText("加载中...");
break;
case 14://搜索完成有数据
mPbLoading.setVisibility(View.GONE);
mSrlContent.setVisibility(View.VISIBLE);
mIvEmptyData.setVisibility(View.GONE);
mTvErrorHint.setVisibility(View.GONE);
break;
case 15://搜索完成没有数据
mPbLoading.setVisibility(View.GONE);
mSrlContent.setVisibility(View.GONE);
mIvEmptyData.setVisibility(View.VISIBLE);
mTvErrorHint.setVisibility(View.VISIBLE);
mTvErrorHint.setText("暂无车辆数据");
break;
case 16://搜索失败
mPbLoading.setVisibility(View.GONE);
mSrlContent.setVisibility(View.GONE);
mIvEmptyData.setVisibility(View.VISIBLE);
mTvErrorHint.setVisibility(View.VISIBLE);
mTvErrorHint.setText("加载失败,请稍后重试");
break;
}
}
}

View File

@ -0,0 +1,356 @@
package com.tengshisoft.gridmodule.incident.activitys.cars;
import android.app.ProgressDialog;
import android.graphics.Color;
import android.text.TextUtils;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.bigkoo.pickerview.builder.TimePickerBuilder;
import com.bigkoo.pickerview.view.TimePickerView;
import com.google.gson.Gson;
import com.hjq.toast.ToastUtils;
import com.tengshisoft.commonmodule.beans.CarBelongPersonDetailBean;
import com.tengshisoft.commonmodule.beans.CarUsePersonDetailBean;
import com.tengshisoft.commonmodule.beans.SaveCarBelongPersonBean;
import com.tengshisoft.commonmodule.beans.SaveCarUsePersonBean;
import com.tengshisoft.commonmodule.beans.SuccessBean;
import com.tengshisoft.commonmodule.nets.GridApis;
import com.tengshisoft.gridmodule.R;
import com.tengshisoft.gridmodule.R2;
import com.tenlionsoft.baselib.constant.PathConfig;
import com.tenlionsoft.baselib.core.retrofit_net.RetrofitManager;
import com.tenlionsoft.baselib.core.widget.base.BaseActivity;
import com.tenlionsoft.baselib.utils.ExceptionHandler;
import com.tenlionsoft.baselib.utils.RegexUtils;
import com.tenlionsoft.baselib.utils.TimeUtils;
import com.tenlionsoft.baselib.utils.UIUtil;
import com.tenlionsoft.baselib.utils.UserLgUtils;
import androidx.appcompat.widget.SwitchCompat;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.Unbinder;
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
import io.reactivex.rxjava3.annotations.NonNull;
import io.reactivex.rxjava3.core.Observer;
import io.reactivex.rxjava3.disposables.Disposable;
import io.reactivex.rxjava3.schedulers.Schedulers;
import okhttp3.MediaType;
import okhttp3.RequestBody;
/**
* 作者: Adam
* 日期: 2021年11月08日18:49:23
* 邮箱: itgaojian@163.com
* 描述: 车辆人员编辑
*/
@Route(path = PathConfig.PATH_MODULE_GRID_ACTIVITY_CAR_PERSON_EDIT)
public class CarPersonEditActivity extends BaseActivity {
@BindView(R2.id.et_name)
EditText mEtName;
@BindView(R2.id.et_id_card)
EditText mEtIdCard;
@BindView(R2.id.et_phone)
EditText mEtPhone;
@BindView(R2.id.tv_start_date)
TextView mTvStartDate;
@BindView(R2.id.tv_end_date)
TextView mTvEndDate;
@BindView(R2.id.sw_is_key)
SwitchCompat mSwIsKey;
@BindView(R2.id.btn_submit)
Button mBtnSubmit;
private String mId;
private Unbinder mBind;
private String mType;
private int mIsUse = 0;
private String mCarId;
@Override
protected int setLayoutId() {
return R.layout.activity_car_person_edit;
}
@Override
public void initData() {
mBind = ButterKnife.bind(this);
mTvBaseTitle.setText("人员信息编辑");
mId = getIntent().getStringExtra("id");
mCarId = getIntent().getStringExtra("carId");
mType = getIntent().getStringExtra("type");
if ("use".equalsIgnoreCase(mType)) {
//使用人
getUsePerson();
} else {
//所属人
getBelongPerson();
}
mTvStartDate.setOnClickListener(v -> onShowDate(1));
mTvEndDate.setOnClickListener(v -> onShowDate(2));
mBtnSubmit.setOnClickListener(v -> {
if ("use".equalsIgnoreCase(mType)) {
doEditUse();
} else {
doEditBelong();
}
});
}
private void doEditBelong() {
if (checkParams()) {
RequestBody body = buildBelongPerson();
ProgressDialog dialog = UIUtil.initDialog(mActivity, "保存中...");
dialog.show();
RetrofitManager.getInstance()
.create(GridApis.class)
.doEditCarBelong(mId, body, UserLgUtils.getToken())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<SuccessBean>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onNext(@NonNull SuccessBean successBean) {
dialog.dismiss();
ToastUtils.show("保存成功");
setResult(13);
finish();
}
@Override
public void onError(@NonNull Throwable e) {
dialog.dismiss();
ExceptionHandler.handleException(e);
}
@Override
public void onComplete() {
}
});
}
}
private void doEditUse() {
if (checkParams()) {
RequestBody body = buildUsePerson();
ProgressDialog dialog = UIUtil.initDialog(mActivity, "保存中...");
dialog.show();
RetrofitManager.getInstance()
.create(GridApis.class)
.doEditCarUse(mId, body, UserLgUtils.getToken())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<SuccessBean>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onNext(@NonNull SuccessBean successBean) {
dialog.dismiss();
ToastUtils.show("保存成功");
setResult(13);
finish();
}
@Override
public void onError(@NonNull Throwable e) {
dialog.dismiss();
ExceptionHandler.handleException(e);
}
@Override
public void onComplete() {
}
});
}
}
/**
* 校验参数
*/
private boolean checkParams() {
hideSoftKeyboard();
String originPwd = mEtName.getText().toString().trim();
if (TextUtils.isEmpty(originPwd)) {
ToastUtils.show("请输入姓名");
return false;
}
String idcard = mEtIdCard.getText().toString().trim();
if (TextUtils.isEmpty(idcard) || !RegexUtils.isIDNumber(idcard)) {
ToastUtils.show("请输入正确的身份证号码");
return false;
}
String phone = mEtPhone.getText().toString().trim();
if (TextUtils.isEmpty(phone) || !RegexUtils.isTel(phone)) {
ToastUtils.show("请输入合法的联系电话");
return false;
}
return true;
}
private RequestBody buildBelongPerson() {
SaveCarBelongPersonBean bean = new SaveCarBelongPersonBean();
bean.setCarId(mCarId);
String name = mEtName.getText().toString().trim();
bean.setBelongName(name);
String idcard = mEtIdCard.getText().toString().trim();
bean.setBelongIdCard(idcard);
String phone = mEtPhone.getText().toString().trim();
bean.setBelongPhone(phone);
String startdate = mTvStartDate.getText().toString().trim();
bean.setBelongStartTime(startdate);
String enddate = mTvEndDate.getText().toString().trim();
bean.setBelongEndTime(enddate);
bean.setIsUse(mIsUse);
Gson gson = new Gson();
String obj = gson.toJson(bean);
return RequestBody.create(MediaType.parse("application/json; charset=utf-8"), obj);
}
private RequestBody buildUsePerson() {
SaveCarUsePersonBean bean = new SaveCarUsePersonBean();
bean.setCarId(mCarId);
String name = mEtName.getText().toString().trim();
bean.setUserName(name);
String idcard = mEtIdCard.getText().toString().trim();
bean.setUserIdCard(idcard);
String phone = mEtPhone.getText().toString().trim();
bean.setUserPhone(phone);
String startdate = mTvStartDate.getText().toString().trim();
bean.setUseStartTime(startdate);
String enddate = mTvEndDate.getText().toString().trim();
bean.setUseEndTime(enddate);
bean.setIsUse(mIsUse);
Gson gson = new Gson();
String obj = gson.toJson(bean);
return RequestBody.create(MediaType.parse("application/json; charset=utf-8"), obj);
}
/**
* 获取所属人
*/
private void getBelongPerson() {
RetrofitManager.getInstance()
.create(GridApis.class)
.getCarBelongDetailById(mId, UserLgUtils.getToken())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<CarBelongPersonDetailBean>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onNext(@NonNull CarBelongPersonDetailBean bean) {
setDataToView(bean.getBelongName(), bean.getBelongPhone(), bean.getBelongIdCard(), bean.getBelongStartTime(), bean.getBelongEndTime(), bean.getIsUse());
}
@Override
public void onError(@NonNull Throwable e) {
refreshView(STATE_LOAD_ERROR);
ExceptionHandler.handleException(e);
}
@Override
public void onComplete() {
}
});
}
/**
* 获取使用人
*/
private void getUsePerson() {
RetrofitManager.getInstance()
.create(GridApis.class)
.getCarUseDetailById(mId, UserLgUtils.getToken())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<CarUsePersonDetailBean>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onNext(@NonNull CarUsePersonDetailBean bean) {
setDataToView(bean.getUserName(), bean.getUserPhone(), bean.getUserIdCard(), bean.getUseStartTime(), bean.getUseEndTime(), bean.getIsUse());
}
@Override
public void onError(@NonNull Throwable e) {
refreshView(STATE_LOAD_ERROR);
ExceptionHandler.handleException(e);
}
@Override
public void onComplete() {
}
});
}
/**
* 日期
* 1 生日
*/
private void onShowDate(int i) {
hideSoftKeyboard();
TimePickerView mTimePickerView = new TimePickerBuilder(mActivity, (date, v) -> {
switch (i) {
case 1:
mTvStartDate.setText(TimeUtils.dateToString(date));
break;
case 2:
mTvEndDate.setText(TimeUtils.dateToString(date));
break;
}
})
.setTitleText("请选日期")
.setCancelColor(Color.parseColor("#1189FF"))
.setSubmitColor(Color.parseColor("#1189FF"))
.setType(new boolean[]{true, true, true, false, false, false})
.setTitleColor(Color.parseColor("#1189FF"))
.build();
mTimePickerView.show();
}
private void setDataToView(String belongName, String belongPhone, String belongIdCard, String belongStartTime, String belongEndTime, int isUse) {
refreshView(STATE_LOAD_SUCCESS);
mEtName.setText(belongName);
mEtPhone.setText(belongPhone);
mEtIdCard.setText(belongIdCard);
mTvStartDate.setText(belongStartTime);
mTvEndDate.setText(belongEndTime);
mSwIsKey.setChecked(isUse == 1);
mIsUse = isUse;
}
@Override
protected void doSearchByTitle() {
}
@Override
protected void clearSearch() {
}
}

View File

@ -617,6 +617,8 @@ public class NonPublicOrgAddActivity extends BaseActivity {
mSelAreaName = names;
mSelAreaCode = code;
mSelAreaId = id;
mSelGridBean = null;
mTvGrid.setText("");
areaDialogView.dismiss();
});
areaDialogView.show();

View File

@ -853,6 +853,8 @@ public class NonPublicOrgEditActivity extends BaseActivity {
mSelAreaName = names;
mSelAreaCode = code;
mSelAreaId = id;
mSelGrid = null;
mTvGrid.setText("");
areaDialogView.dismiss();
});
areaDialogView.show();

View File

@ -675,6 +675,8 @@ public class SocialOrgAddActivity extends BaseActivity {
mSelAreaName = names;
mSelAreaCode = code;
mSelAreaId = id;
mSelGrid = null;
mTvGrid.setText("");
areaDialogView.dismiss();
});
areaDialogView.show();

View File

@ -881,6 +881,8 @@ public class SocialOrgEditActivity extends BaseActivity {
mSelAreaName = names;
mSelAreaCode = code;
mSelAreaId = id;
mSelGrid = null;
mTvGrid.setText("");
areaDialogView.dismiss();
});
areaDialogView.show();

View File

@ -0,0 +1,156 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/nsv_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/gray_bg"
android:orientation="vertical"
android:overScrollMode="never"
android:scrollbars="none">
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="8dp"
app:cardCornerRadius="5dp"
app:cardPreventCornerOverlap="true"
app:cardUseCompatPadding="false">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:orientation="vertical">
<TextView
android:id="@+id/tv_issue_base_info"
style="@style/issue_report_title"
android:drawablePadding="10dp"
android:padding="8dp"
android:text="基本信息"
android:textStyle="bold" />
<LinearLayout style="@style/item_gray">
<ImageView
style="@style/style_hint_star"
android:visibility="visible" />
<TextView
style="@style/item_title"
android:text="车牌号" />
<View style="@style/vertical_line" />
<EditText
android:id="@+id/et_car_number"
style="@style/item_content"
android:hint="请输入车牌号" />
</LinearLayout>
<LinearLayout style="@style/item_gray">
<ImageView
style="@style/style_hint_star"
android:visibility="visible" />
<TextView
style="@style/item_title"
android:text="车辆类型" />
<View style="@style/vertical_line" />
<TextView
android:id="@+id/tv_car_type"
style="@style/sel_text_arrow"
android:hint="请选择车辆类型" />
</LinearLayout>
<LinearLayout style="@style/item_gray">
<ImageView
style="@style/style_hint_star"
android:visibility="gone" />
<TextView
style="@style/item_title"
android:text="车名称" />
<View style="@style/vertical_line" />
<EditText
android:id="@+id/et_car_name"
style="@style/item_content"
android:hint="请输入车辆名称" />
</LinearLayout>
<LinearLayout style="@style/item_gray">
<ImageView
style="@style/style_hint_star"
android:visibility="gone" />
<TextView
style="@style/item_title"
android:text="地区" />
<View style="@style/vertical_line" />
<TextView
android:id="@+id/tv_area"
style="@style/sel_text_arrow"
android:hint="请选择地区" />
</LinearLayout>
<LinearLayout style="@style/item_gray">
<ImageView
style="@style/style_hint_star"
android:visibility="gone" />
<TextView
style="@style/item_title"
android:text="所在网格" />
<View style="@style/vertical_line" />
<TextView
android:id="@+id/tv_grid"
style="@style/sel_text_arrow"
android:hint="请选择所在网格" />
</LinearLayout>
<LinearLayout style="@style/item_gray_vertical">
<TextView
style="@style/item_title_vertical"
android:text="车辆照片" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rlv_car_photo"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
<Button
android:id="@+id/btn_submit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginTop="10dp"
android:layout_marginRight="20dp"
android:background="@drawable/sel_btn_submit"
android:text="保存"
android:textColor="@color/white"
android:textSize="18sp" />
</LinearLayout>
</androidx.cardview.widget.CardView>
</androidx.core.widget.NestedScrollView>

View File

@ -0,0 +1,336 @@
<?xml version="1.0" encoding="utf-8"?>
<com.scwang.smart.refresh.layout.SmartRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/srl_content"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.core.widget.NestedScrollView
android:id="@+id/nsv_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/gray_bg"
android:orientation="vertical"
android:overScrollMode="never"
android:scrollbars="none">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="8dp"
app:cardCornerRadius="5dp"
app:cardPreventCornerOverlap="true"
app:cardUseCompatPadding="false">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
style="@style/issue_report_title"
android:padding="8dp"
android:text="车辆详情"
android:textStyle="bold" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="10dp"
android:orientation="horizontal">
<Button
android:id="@+id/btn_edit"
android:layout_width="50dp"
android:layout_height="wrap_content"
android:background="@drawable/sel_btn_blue_gray_re_5"
android:minWidth="0dp"
android:minHeight="0dp"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:text="编辑"
android:textColor="@color/white" />
<Button
android:id="@+id/btn_del"
android:layout_width="50dp"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:background="@drawable/sel_btn_red_gray_re_5"
android:minWidth="0dp"
android:minHeight="0dp"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:text="删除"
android:textColor="@color/white" />
</LinearLayout>
</RelativeLayout>
<LinearLayout style="@style/item_gray">
<ImageView
style="@style/style_hint_star"
android:visibility="gone" />
<TextView
style="@style/item_title"
android:text="车牌号" />
<View style="@style/vertical_line" />
<TextView
android:id="@+id/tv_car_number"
style="@style/item_content" />
</LinearLayout>
<LinearLayout style="@style/item_gray">
<ImageView
style="@style/style_hint_star"
android:visibility="gone" />
<TextView
style="@style/item_title"
android:text="车辆类型" />
<View style="@style/vertical_line" />
<TextView
android:id="@+id/tv_car_type"
style="@style/item_content" />
</LinearLayout>
<LinearLayout style="@style/item_gray">
<ImageView
style="@style/style_hint_star"
android:visibility="gone" />
<TextView
style="@style/item_title"
android:text="车名称" />
<View style="@style/vertical_line" />
<TextView
android:id="@+id/tv_car_name"
style="@style/item_content" />
</LinearLayout>
<LinearLayout style="@style/item_gray">
<ImageView
style="@style/style_hint_star"
android:visibility="gone" />
<TextView
style="@style/item_title"
android:text="地区" />
<View style="@style/vertical_line" />
<TextView
android:id="@+id/tv_area"
style="@style/item_content" />
</LinearLayout>
<LinearLayout style="@style/item_gray">
<ImageView
style="@style/style_hint_star"
android:visibility="gone" />
<TextView
style="@style/item_title"
android:text="所在网格" />
<View style="@style/vertical_line" />
<TextView
android:id="@+id/tv_grid"
style="@style/item_content" />
</LinearLayout>
<LinearLayout style="@style/item_gray_vertical">
<TextView
style="@style/item_title_vertical"
android:text="车辆照片" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rlv_car_photo"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/tv_car_hint"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:padding="20dp"
android:text="未上传" />
</RelativeLayout>
</LinearLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="8dp"
app:cardCornerRadius="5dp"
app:cardPreventCornerOverlap="true"
app:cardUseCompatPadding="false">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
style="@style/issue_report_title"
android:drawablePadding="10dp"
android:padding="8dp"
android:text="车辆所属人"
android:textStyle="bold" />
<Button
android:id="@+id/btn_bind"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:background="@null"
android:minWidth="0dp"
android:minHeight="0dp"
android:paddingLeft="5dp"
android:paddingTop="2dp"
android:paddingRight="5dp"
android:paddingBottom="2dp"
android:text="添加人员"
android:textColor="@color/black" />
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rlv_belong_person"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:background="@color/gray_bg" />
<TextView
android:id="@+id/tv_belong_hint"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:padding="20dp"
android:text="未录入" />
</RelativeLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="8dp"
app:cardCornerRadius="5dp"
app:cardPreventCornerOverlap="true"
app:cardUseCompatPadding="false">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
style="@style/issue_report_title"
android:drawablePadding="10dp"
android:padding="8dp"
android:text="车辆使用人"
android:textStyle="bold" />
<Button
android:id="@+id/btn_use"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:background="@null"
android:minWidth="0dp"
android:minHeight="0dp"
android:paddingLeft="5dp"
android:paddingTop="2dp"
android:paddingRight="5dp"
android:paddingBottom="2dp"
android:text="添加人员"
android:textColor="@color/black" />
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rlv_use_person"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:background="@color/gray_bg" />
<TextView
android:id="@+id/tv_use_hint"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:padding="20dp"
android:text="未录入" />
</RelativeLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</com.scwang.smart.refresh.layout.SmartRefreshLayout>

View File

@ -0,0 +1,156 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/nsv_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/gray_bg"
android:orientation="vertical"
android:overScrollMode="never"
android:scrollbars="none">
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="8dp"
app:cardCornerRadius="5dp"
app:cardPreventCornerOverlap="true"
app:cardUseCompatPadding="false">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:orientation="vertical">
<TextView
android:id="@+id/tv_issue_base_info"
style="@style/issue_report_title"
android:drawablePadding="10dp"
android:padding="8dp"
android:text="基本信息"
android:textStyle="bold" />
<LinearLayout style="@style/item_gray">
<ImageView
style="@style/style_hint_star"
android:visibility="visible" />
<TextView
style="@style/item_title"
android:text="车牌号" />
<View style="@style/vertical_line" />
<EditText
android:id="@+id/et_car_number"
style="@style/item_content"
android:hint="请输入车牌号" />
</LinearLayout>
<LinearLayout style="@style/item_gray">
<ImageView
style="@style/style_hint_star"
android:visibility="visible" />
<TextView
style="@style/item_title"
android:text="车辆类型" />
<View style="@style/vertical_line" />
<TextView
android:id="@+id/tv_car_type"
style="@style/sel_text_arrow"
android:hint="请选择车辆类型" />
</LinearLayout>
<LinearLayout style="@style/item_gray">
<ImageView
style="@style/style_hint_star"
android:visibility="gone" />
<TextView
style="@style/item_title"
android:text="车名称" />
<View style="@style/vertical_line" />
<EditText
android:id="@+id/et_car_name"
style="@style/item_content"
android:hint="请输入车辆名称" />
</LinearLayout>
<LinearLayout style="@style/item_gray">
<ImageView
style="@style/style_hint_star"
android:visibility="gone" />
<TextView
style="@style/item_title"
android:text="地区" />
<View style="@style/vertical_line" />
<TextView
android:id="@+id/tv_area"
style="@style/sel_text_arrow"
android:hint="请选择地区" />
</LinearLayout>
<LinearLayout style="@style/item_gray">
<ImageView
style="@style/style_hint_star"
android:visibility="gone" />
<TextView
style="@style/item_title"
android:text="所在网格" />
<View style="@style/vertical_line" />
<TextView
android:id="@+id/tv_grid"
style="@style/sel_text_arrow"
android:hint="请选择所在网格" />
</LinearLayout>
<LinearLayout style="@style/item_gray_vertical">
<TextView
style="@style/item_title_vertical"
android:text="车辆照片" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rlv_car_photo"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
<Button
android:id="@+id/btn_submit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginTop="10dp"
android:layout_marginRight="20dp"
android:background="@drawable/sel_btn_submit"
android:text="保存"
android:textColor="@color/white"
android:textSize="18sp" />
</LinearLayout>
</androidx.cardview.widget.CardView>
</androidx.core.widget.NestedScrollView>

View File

@ -0,0 +1,59 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:background="@color/gray_bg"
android:orientation="vertical"
tools:context=".incident.activitys.components.ComponentsListActivity">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="5dp">
<com.scwang.smart.refresh.layout.SmartRefreshLayout
android:id="@+id/srl_content"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rlv_components"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</com.scwang.smart.refresh.layout.SmartRefreshLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical">
<ProgressBar
android:id="@+id/pb_loading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:indeterminateBehavior="repeat"
android:indeterminateDrawable="@drawable/anim_loading" />
<ImageView
android:id="@+id/iv_empty_data"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_centerInParent="true"
android:background="@drawable/ic_empty_data" />
<TextView
android:id="@+id/tv_error_hint"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:clickable="true"
android:textColor="@color/black"
tools:text="加载数据失败" />
</LinearLayout>
</RelativeLayout>
</LinearLayout>

View File

@ -0,0 +1,229 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView 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"
android:layout_margin="8dp"
app:cardCornerRadius="5dp"
app:cardPreventCornerOverlap="true"
app:cardUseCompatPadding="false">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/shp_rectangle_white_5"
android:orientation="vertical"
android:paddingBottom="10dp">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="8dp"
android:text="人员信息编辑"
android:textColor="@color/black"
android:textSize="18sp" />
<LinearLayout
style="@style/item_gray"
android:layout_marginTop="10dp">
<ImageView
style="@style/style_hint_star"
android:visibility="visible" />
<TextView
style="@style/item_title"
android:text="姓名" />
<View style="@style/vertical_line" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center">
<EditText
android:id="@+id/et_name"
style="@style/item_content"
android:gravity="left"
android:hint="请输入姓名"
android:inputType="text" />
</LinearLayout>
</LinearLayout>
<LinearLayout
style="@style/item_gray"
android:layout_marginTop="10dp">
<ImageView
style="@style/style_hint_star"
android:visibility="visible" />
<TextView
style="@style/item_title"
android:text="身份证号" />
<View style="@style/vertical_line" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center">
<EditText
android:id="@+id/et_id_card"
style="@style/item_content"
android:digits="@string/limit_id_card"
android:gravity="left"
android:hint="请输入身份证号码"
android:inputType="text" />
</LinearLayout>
</LinearLayout>
<LinearLayout
style="@style/item_gray"
android:layout_marginTop="10dp">
<ImageView
style="@style/style_hint_star"
android:visibility="visible" />
<TextView
style="@style/item_title"
android:text="联系电话" />
<View style="@style/vertical_line" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center">
<EditText
android:id="@+id/et_phone"
style="@style/item_content"
android:digits="@string/limit_phone"
android:gravity="left"
android:hint="请输入联系电话"
android:inputType="text" />
</LinearLayout>
</LinearLayout>
<LinearLayout
style="@style/item_gray"
android:layout_marginTop="10dp">
<ImageView
style="@style/style_hint_star"
android:visibility="invisible" />
<TextView
style="@style/item_title"
android:text="开始时间" />
<View style="@style/vertical_line" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center">
<TextView
android:id="@+id/tv_start_date"
style="@style/sel_text_arrow"
android:hint="请选择开始时间" />
</LinearLayout>
</LinearLayout>
<LinearLayout
style="@style/item_gray"
android:layout_marginTop="10dp">
<ImageView
style="@style/style_hint_star"
android:visibility="invisible" />
<TextView
style="@style/item_title"
android:text="结束时间" />
<View style="@style/vertical_line" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center">
<TextView
android:id="@+id/tv_end_date"
style="@style/sel_text_arrow"
android:hint="请选择结束时间" />
</LinearLayout>
</LinearLayout>
<LinearLayout
style="@style/item_gray"
android:layout_marginTop="10dp">
<ImageView
style="@style/style_hint_star"
android:visibility="visible" />
<TextView
style="@style/item_title"
android:text="是否使用" />
<View style="@style/vertical_line" />
<RelativeLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/sw_is_key"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:background="@drawable/switch_ios_track_selector"
android:switchMinWidth="40dp"
android:switchPadding="0dp"
android:textOff=""
android:textOn=""
app:showText="false"
app:splitTrack="false"
app:theme="@style/scstyle"
app:thumbTint="#00000000"
app:trackTint="#00000000" />
</RelativeLayout>
</LinearLayout>
<Button
android:id="@+id/btn_submit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginTop="10dp"
android:layout_marginRight="20dp"
android:background="@drawable/sel_btn_submit"
android:text="保存"
android:textColor="@color/white"
android:textSize="18sp" />
</LinearLayout>
</androidx.cardview.widget.CardView>

View File

@ -70,6 +70,7 @@ public class GridMainFragment extends BaseFragment {
"巡查巡检",
"任务管理",
"两新组织",
"实有车辆",
"邮寄物流地",
"重点青少年事件",
"命案防控",
@ -89,6 +90,7 @@ public class GridMainFragment extends BaseFragment {
R.drawable.ic_notify_ad,
R.drawable.ic_notify_ad,
R.drawable.ic_notify_ad,
R.drawable.ic_case_record,
R.drawable.ic_notify_ad,
R.drawable.ic_case_dispose,
R.drawable.ic_notify_ad,
@ -216,6 +218,11 @@ public class GridMainFragment extends BaseFragment {
case "两新组织":
showOrgDialog();
break;
case "实有车辆":
ARouter.getInstance()
.build(PathConfig.PATH_MODULE_GRID_ACTIVITY_CAR_MANAGE_LIST)
.navigation();
break;
case "重点区域":
ARouter.getInstance()
.build(PathConfig.PATH_MODULE_GRID_ACTIVITY_KEY_AREA_LIST)

View File

@ -20,6 +20,12 @@ import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.Unbinder;
/**
* 作者: Adam
* 日期: 2021年11月08日11:13:47
* 邮箱: itgaojian@163.com
* 描述: 视频播放页面
*/
@Route(path = PathConfig.PATH_MODULE_PLAYER_SIMPLE_VIDEO)
public class SimpleVideoActivity extends BaseActivity {
@BindView(R2.id.vv_video)

View File

@ -10,6 +10,6 @@
<com.tengshisoft.moduleijkplayer.player.VideoView
android:id="@+id/vv_video"
android:layout_width="match_parent"
android:layout_height="220dp"
android:layout_height="match_parent"
android:layout_centerInParent="true" />
</RelativeLayout>

View File

@ -3,7 +3,11 @@
package="com.tengshisoft.modulemap">
<application>
<activity android:name=".activitys.SelPointActivity"/>
<activity
android:name=".activitys.SelPointActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<meta-data
android:name="com.baidu.lbsapi.API_KEY"

View File

@ -3,12 +3,36 @@
package="com.tengshisoft.supervisionmodule">
<application>
<activity android:name=".activitys.IncidentCheckDeptDetailActivity"></activity>
<activity android:name=".activitys.IncidentCheckDeptListActivity" />
<activity android:name=".activitys.IncidentAcceptDeptDetailActivity" />
<activity android:name=".activitys.IncidentAcceptDeptListActivity" />
<activity android:name=".activitys.IncidentDistributionDeptDetailActivity" />
<activity android:name=".activitys.IncidentDistributionDeptListActivity" />
<activity
android:name=".activitys.IncidentCheckDeptDetailActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".activitys.IncidentCheckDeptListActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".activitys.IncidentAcceptDeptDetailActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".activitys.IncidentAcceptDeptListActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".activitys.IncidentDistributionDeptDetailActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".activitys.IncidentDistributionDeptListActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
</application>
</manifest>