diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 7befe7c..54b3625 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -12,6 +12,7 @@
+
+
+
+
groupData = new ArrayList<>();
+ private List> childData = new ArrayList<>();
+ private LayoutInflater layoutInflater;
+
+ public DeptExpandableAdapter(Context mContext) {
+ layoutInflater = LayoutInflater.from(mContext);
+ }
+
+ public void setData(@Nullable List groupList, @Nullable List> childList) {
+ groupData.clear();
+ childData.clear();
+ if (groupList != null) {
+ this.groupData = groupList;
+ if (childList != null) {
+ this.childData = childList;
+ }
+ }
+ notifyDataSetChanged();
+ }
+
+ @Override
+ public int getGroupCount() {
+ return groupData.size();
+ }
+
+ @Override
+ public int getChildrenCount(int groupPosition) {
+ return childData.get(groupPosition).size();
+ }
+
+ @Override
+ public Object getGroup(int groupPosition) {
+ return groupData.get(groupPosition);
+ }
+
+ @Override
+ public Object getChild(int groupPosition, int childPosition) {
+ return childData.get(groupPosition).get(childPosition);
+ }
+
+ @Override
+ public long getGroupId(int groupPosition) {
+ return groupPosition;
+ }
+
+ @Override
+ public long getChildId(int groupPosition, int childPosition) {
+ return childPosition;
+ }
+
+ @Override
+ public boolean hasStableIds() {
+ return false;
+ }
+
+ @Override
+ public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
+ GroupViewHolder groupHolder;
+ if (convertView == null) {
+ convertView = layoutInflater.inflate(R.layout.item_group_list, parent, false);
+ groupHolder = new GroupViewHolder();
+ groupHolder.groupNameView = convertView.findViewById(R.id.groupNameView);
+ convertView.setTag(groupHolder);
+ } else {
+ groupHolder = (GroupViewHolder) convertView.getTag();
+ }
+ groupHolder.groupNameView.setText(groupData.get(groupPosition));
+ return convertView;
+ }
+
+ @Override
+ public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
+ ChildViewHolder itemHolder;
+ if (convertView == null) {
+ convertView = layoutInflater.inflate(R.layout.item_child_list, parent, false);
+ itemHolder = new ChildViewHolder();
+ itemHolder.childNameView = convertView.findViewById(R.id.childNameView);
+ itemHolder.childPhoneView = convertView.findViewById(R.id.childPhoneView);
+ convertView.setTag(itemHolder);
+ } else {
+ itemHolder = (ChildViewHolder) convertView.getTag();
+ }
+ itemHolder.childNameView.setText(childData.get(groupPosition).get(childPosition).getPersonName());
+ itemHolder.childPhoneView.setText(childData.get(groupPosition).get(childPosition).getPersonPhone());
+ return convertView;
+ }
+
+ //设置子列表是否可选中
+ @Override
+ public boolean isChildSelectable(int groupPosition, int childPosition) {
+ return true;
+ }
+
+ private static class GroupViewHolder {
+ private TextView groupNameView;
+ }
+
+ private static class ChildViewHolder {
+ private TextView childNameView;
+ private TextView childPhoneView;
+ }
+}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 7befe7c..54b3625 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -12,6 +12,7 @@
+
+
groupData = new ArrayList<>();
+ private List> childData = new ArrayList<>();
+ private LayoutInflater layoutInflater;
+
+ public DeptExpandableAdapter(Context mContext) {
+ layoutInflater = LayoutInflater.from(mContext);
+ }
+
+ public void setData(@Nullable List groupList, @Nullable List> childList) {
+ groupData.clear();
+ childData.clear();
+ if (groupList != null) {
+ this.groupData = groupList;
+ if (childList != null) {
+ this.childData = childList;
+ }
+ }
+ notifyDataSetChanged();
+ }
+
+ @Override
+ public int getGroupCount() {
+ return groupData.size();
+ }
+
+ @Override
+ public int getChildrenCount(int groupPosition) {
+ return childData.get(groupPosition).size();
+ }
+
+ @Override
+ public Object getGroup(int groupPosition) {
+ return groupData.get(groupPosition);
+ }
+
+ @Override
+ public Object getChild(int groupPosition, int childPosition) {
+ return childData.get(groupPosition).get(childPosition);
+ }
+
+ @Override
+ public long getGroupId(int groupPosition) {
+ return groupPosition;
+ }
+
+ @Override
+ public long getChildId(int groupPosition, int childPosition) {
+ return childPosition;
+ }
+
+ @Override
+ public boolean hasStableIds() {
+ return false;
+ }
+
+ @Override
+ public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
+ GroupViewHolder groupHolder;
+ if (convertView == null) {
+ convertView = layoutInflater.inflate(R.layout.item_group_list, parent, false);
+ groupHolder = new GroupViewHolder();
+ groupHolder.groupNameView = convertView.findViewById(R.id.groupNameView);
+ convertView.setTag(groupHolder);
+ } else {
+ groupHolder = (GroupViewHolder) convertView.getTag();
+ }
+ groupHolder.groupNameView.setText(groupData.get(groupPosition));
+ return convertView;
+ }
+
+ @Override
+ public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
+ ChildViewHolder itemHolder;
+ if (convertView == null) {
+ convertView = layoutInflater.inflate(R.layout.item_child_list, parent, false);
+ itemHolder = new ChildViewHolder();
+ itemHolder.childNameView = convertView.findViewById(R.id.childNameView);
+ itemHolder.childPhoneView = convertView.findViewById(R.id.childPhoneView);
+ convertView.setTag(itemHolder);
+ } else {
+ itemHolder = (ChildViewHolder) convertView.getTag();
+ }
+ itemHolder.childNameView.setText(childData.get(groupPosition).get(childPosition).getPersonName());
+ itemHolder.childPhoneView.setText(childData.get(groupPosition).get(childPosition).getPersonPhone());
+ return convertView;
+ }
+
+ //设置子列表是否可选中
+ @Override
+ public boolean isChildSelectable(int groupPosition, int childPosition) {
+ return true;
+ }
+
+ private static class GroupViewHolder {
+ private TextView groupNameView;
+ }
+
+ private static class ChildViewHolder {
+ private TextView childNameView;
+ private TextView childPhoneView;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/adapter/SwipeViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/SwipeViewAdapter.java
new file mode 100644
index 0000000..aa469ff
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/adapter/SwipeViewAdapter.java
@@ -0,0 +1,96 @@
+package com.casic.dcms.adapter;
+
+import android.content.Context;
+import android.graphics.Color;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.casic.dcms.R;
+import com.casic.dcms.bean.NoticeBean;
+import com.qmuiteam.qmui.recyclerView.QMUISwipeAction;
+import com.qmuiteam.qmui.recyclerView.QMUISwipeViewHolder;
+import com.qmuiteam.qmui.util.QMUIDisplayHelper;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 9:47
+ * @email : 290677893@qq.com
+ **/
+public class SwipeViewAdapter extends RecyclerView.Adapter {
+
+ private List mData = new ArrayList<>();
+ private final QMUISwipeAction mDeleteAction;
+
+ public SwipeViewAdapter(Context context) {
+ QMUISwipeAction.ActionBuilder builder = new QMUISwipeAction.ActionBuilder()
+ .textSize(QMUIDisplayHelper.sp2px(context, 18))
+ .textColor(Color.WHITE)
+ .paddingStartEnd(QMUIDisplayHelper.dp2px(context, 18));
+ mDeleteAction = builder.text("删除").backgroundColor(Color.RED).build();
+ }
+
+ public void setData(@Nullable List list) {
+ mData.clear();
+ if (list != null) {
+ mData.addAll(list);
+ }
+ notifyDataSetChanged();
+ }
+
+ public void remove(int pos) {
+ mData.remove(pos);
+ notifyItemRemoved(pos);
+ }
+
+ @NonNull
+ @Override
+ public QMUISwipeViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_notice_list, parent, false);
+ final QMUISwipeViewHolder swipeViewHolder = new QMUISwipeViewHolder(view);
+ swipeViewHolder.addSwipeAction(mDeleteAction);
+ return swipeViewHolder;
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull QMUISwipeViewHolder holder, int position) {
+ TextView noticeTitleView = holder.itemView.findViewById(R.id.noticeTitleView);
+ TextView noticeDateView = holder.itemView.findViewById(R.id.noticeDateView);
+ TextView noticeContentView = holder.itemView.findViewById(R.id.noticeContentView);
+
+ NoticeBean noticeBean = mData.get(position);
+ noticeTitleView.setText(noticeBean.getNoticeTitle());
+ noticeDateView.setText(noticeBean.getNoticeDate());
+ noticeContentView.setText(noticeBean.getNoticeContent());
+ holder.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ clickListener.onClick(position);
+ }
+ });
+ }
+
+ @Override
+ public int getItemCount() {
+ return mData.size();
+ }
+
+ private OnItemClickListener clickListener;
+
+ public interface OnItemClickListener {
+ void onClick(int position);
+ }
+
+ public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
+ this.clickListener = onItemClickListener;
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 7befe7c..54b3625 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -12,6 +12,7 @@
+
+
groupData = new ArrayList<>();
+ private List> childData = new ArrayList<>();
+ private LayoutInflater layoutInflater;
+
+ public DeptExpandableAdapter(Context mContext) {
+ layoutInflater = LayoutInflater.from(mContext);
+ }
+
+ public void setData(@Nullable List groupList, @Nullable List> childList) {
+ groupData.clear();
+ childData.clear();
+ if (groupList != null) {
+ this.groupData = groupList;
+ if (childList != null) {
+ this.childData = childList;
+ }
+ }
+ notifyDataSetChanged();
+ }
+
+ @Override
+ public int getGroupCount() {
+ return groupData.size();
+ }
+
+ @Override
+ public int getChildrenCount(int groupPosition) {
+ return childData.get(groupPosition).size();
+ }
+
+ @Override
+ public Object getGroup(int groupPosition) {
+ return groupData.get(groupPosition);
+ }
+
+ @Override
+ public Object getChild(int groupPosition, int childPosition) {
+ return childData.get(groupPosition).get(childPosition);
+ }
+
+ @Override
+ public long getGroupId(int groupPosition) {
+ return groupPosition;
+ }
+
+ @Override
+ public long getChildId(int groupPosition, int childPosition) {
+ return childPosition;
+ }
+
+ @Override
+ public boolean hasStableIds() {
+ return false;
+ }
+
+ @Override
+ public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
+ GroupViewHolder groupHolder;
+ if (convertView == null) {
+ convertView = layoutInflater.inflate(R.layout.item_group_list, parent, false);
+ groupHolder = new GroupViewHolder();
+ groupHolder.groupNameView = convertView.findViewById(R.id.groupNameView);
+ convertView.setTag(groupHolder);
+ } else {
+ groupHolder = (GroupViewHolder) convertView.getTag();
+ }
+ groupHolder.groupNameView.setText(groupData.get(groupPosition));
+ return convertView;
+ }
+
+ @Override
+ public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
+ ChildViewHolder itemHolder;
+ if (convertView == null) {
+ convertView = layoutInflater.inflate(R.layout.item_child_list, parent, false);
+ itemHolder = new ChildViewHolder();
+ itemHolder.childNameView = convertView.findViewById(R.id.childNameView);
+ itemHolder.childPhoneView = convertView.findViewById(R.id.childPhoneView);
+ convertView.setTag(itemHolder);
+ } else {
+ itemHolder = (ChildViewHolder) convertView.getTag();
+ }
+ itemHolder.childNameView.setText(childData.get(groupPosition).get(childPosition).getPersonName());
+ itemHolder.childPhoneView.setText(childData.get(groupPosition).get(childPosition).getPersonPhone());
+ return convertView;
+ }
+
+ //设置子列表是否可选中
+ @Override
+ public boolean isChildSelectable(int groupPosition, int childPosition) {
+ return true;
+ }
+
+ private static class GroupViewHolder {
+ private TextView groupNameView;
+ }
+
+ private static class ChildViewHolder {
+ private TextView childNameView;
+ private TextView childPhoneView;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/adapter/SwipeViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/SwipeViewAdapter.java
new file mode 100644
index 0000000..aa469ff
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/adapter/SwipeViewAdapter.java
@@ -0,0 +1,96 @@
+package com.casic.dcms.adapter;
+
+import android.content.Context;
+import android.graphics.Color;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.casic.dcms.R;
+import com.casic.dcms.bean.NoticeBean;
+import com.qmuiteam.qmui.recyclerView.QMUISwipeAction;
+import com.qmuiteam.qmui.recyclerView.QMUISwipeViewHolder;
+import com.qmuiteam.qmui.util.QMUIDisplayHelper;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 9:47
+ * @email : 290677893@qq.com
+ **/
+public class SwipeViewAdapter extends RecyclerView.Adapter {
+
+ private List mData = new ArrayList<>();
+ private final QMUISwipeAction mDeleteAction;
+
+ public SwipeViewAdapter(Context context) {
+ QMUISwipeAction.ActionBuilder builder = new QMUISwipeAction.ActionBuilder()
+ .textSize(QMUIDisplayHelper.sp2px(context, 18))
+ .textColor(Color.WHITE)
+ .paddingStartEnd(QMUIDisplayHelper.dp2px(context, 18));
+ mDeleteAction = builder.text("删除").backgroundColor(Color.RED).build();
+ }
+
+ public void setData(@Nullable List list) {
+ mData.clear();
+ if (list != null) {
+ mData.addAll(list);
+ }
+ notifyDataSetChanged();
+ }
+
+ public void remove(int pos) {
+ mData.remove(pos);
+ notifyItemRemoved(pos);
+ }
+
+ @NonNull
+ @Override
+ public QMUISwipeViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_notice_list, parent, false);
+ final QMUISwipeViewHolder swipeViewHolder = new QMUISwipeViewHolder(view);
+ swipeViewHolder.addSwipeAction(mDeleteAction);
+ return swipeViewHolder;
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull QMUISwipeViewHolder holder, int position) {
+ TextView noticeTitleView = holder.itemView.findViewById(R.id.noticeTitleView);
+ TextView noticeDateView = holder.itemView.findViewById(R.id.noticeDateView);
+ TextView noticeContentView = holder.itemView.findViewById(R.id.noticeContentView);
+
+ NoticeBean noticeBean = mData.get(position);
+ noticeTitleView.setText(noticeBean.getNoticeTitle());
+ noticeDateView.setText(noticeBean.getNoticeDate());
+ noticeContentView.setText(noticeBean.getNoticeContent());
+ holder.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ clickListener.onClick(position);
+ }
+ });
+ }
+
+ @Override
+ public int getItemCount() {
+ return mData.size();
+ }
+
+ private OnItemClickListener clickListener;
+
+ public interface OnItemClickListener {
+ void onClick(int position);
+ }
+
+ public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
+ this.clickListener = onItemClickListener;
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/bean/DeptTreeBean.java b/app/src/main/java/com/casic/dcms/bean/DeptTreeBean.java
new file mode 100644
index 0000000..7f0f079
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/DeptTreeBean.java
@@ -0,0 +1,153 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 12:46
+ * @email : 290677893@qq.com
+ **/
+public class DeptTreeBean {
+
+ /**
+ * code : 200.0
+ * data : {"list":[{"checked":false,"code":"","id":"1177026995528237058","name":"指挥中心","open":false,"pcodes":"","pid":"24","value":""}]}
+ * message : 请求成功
+ * success : true
+ */
+
+ private double code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ private List list;
+
+ public List getList() {
+ return list;
+ }
+
+ public void setList(List list) {
+ this.list = list;
+ }
+
+ public static class ListBean {
+ /**
+ * checked : false
+ * code :
+ * id : 1177026995528237058
+ * name : 指挥中心
+ * open : false
+ * pcodes :
+ * pid : 24
+ * value :
+ */
+
+ private boolean checked;
+ private String code;
+ private String id;
+ private String name;
+ private boolean open;
+ private String pcodes;
+ private String pid;
+ private String value;
+
+ public boolean isChecked() {
+ return checked;
+ }
+
+ public void setChecked(boolean checked) {
+ this.checked = checked;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public boolean isOpen() {
+ return open;
+ }
+
+ public void setOpen(boolean open) {
+ this.open = open;
+ }
+
+ public String getPcodes() {
+ return pcodes;
+ }
+
+ public void setPcodes(String pcodes) {
+ this.pcodes = pcodes;
+ }
+
+ public String getPid() {
+ return pid;
+ }
+
+ public void setPid(String pid) {
+ this.pid = pid;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+ }
+ }
+}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 7befe7c..54b3625 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -12,6 +12,7 @@
+
+
groupData = new ArrayList<>();
+ private List> childData = new ArrayList<>();
+ private LayoutInflater layoutInflater;
+
+ public DeptExpandableAdapter(Context mContext) {
+ layoutInflater = LayoutInflater.from(mContext);
+ }
+
+ public void setData(@Nullable List groupList, @Nullable List> childList) {
+ groupData.clear();
+ childData.clear();
+ if (groupList != null) {
+ this.groupData = groupList;
+ if (childList != null) {
+ this.childData = childList;
+ }
+ }
+ notifyDataSetChanged();
+ }
+
+ @Override
+ public int getGroupCount() {
+ return groupData.size();
+ }
+
+ @Override
+ public int getChildrenCount(int groupPosition) {
+ return childData.get(groupPosition).size();
+ }
+
+ @Override
+ public Object getGroup(int groupPosition) {
+ return groupData.get(groupPosition);
+ }
+
+ @Override
+ public Object getChild(int groupPosition, int childPosition) {
+ return childData.get(groupPosition).get(childPosition);
+ }
+
+ @Override
+ public long getGroupId(int groupPosition) {
+ return groupPosition;
+ }
+
+ @Override
+ public long getChildId(int groupPosition, int childPosition) {
+ return childPosition;
+ }
+
+ @Override
+ public boolean hasStableIds() {
+ return false;
+ }
+
+ @Override
+ public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
+ GroupViewHolder groupHolder;
+ if (convertView == null) {
+ convertView = layoutInflater.inflate(R.layout.item_group_list, parent, false);
+ groupHolder = new GroupViewHolder();
+ groupHolder.groupNameView = convertView.findViewById(R.id.groupNameView);
+ convertView.setTag(groupHolder);
+ } else {
+ groupHolder = (GroupViewHolder) convertView.getTag();
+ }
+ groupHolder.groupNameView.setText(groupData.get(groupPosition));
+ return convertView;
+ }
+
+ @Override
+ public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
+ ChildViewHolder itemHolder;
+ if (convertView == null) {
+ convertView = layoutInflater.inflate(R.layout.item_child_list, parent, false);
+ itemHolder = new ChildViewHolder();
+ itemHolder.childNameView = convertView.findViewById(R.id.childNameView);
+ itemHolder.childPhoneView = convertView.findViewById(R.id.childPhoneView);
+ convertView.setTag(itemHolder);
+ } else {
+ itemHolder = (ChildViewHolder) convertView.getTag();
+ }
+ itemHolder.childNameView.setText(childData.get(groupPosition).get(childPosition).getPersonName());
+ itemHolder.childPhoneView.setText(childData.get(groupPosition).get(childPosition).getPersonPhone());
+ return convertView;
+ }
+
+ //设置子列表是否可选中
+ @Override
+ public boolean isChildSelectable(int groupPosition, int childPosition) {
+ return true;
+ }
+
+ private static class GroupViewHolder {
+ private TextView groupNameView;
+ }
+
+ private static class ChildViewHolder {
+ private TextView childNameView;
+ private TextView childPhoneView;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/adapter/SwipeViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/SwipeViewAdapter.java
new file mode 100644
index 0000000..aa469ff
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/adapter/SwipeViewAdapter.java
@@ -0,0 +1,96 @@
+package com.casic.dcms.adapter;
+
+import android.content.Context;
+import android.graphics.Color;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.casic.dcms.R;
+import com.casic.dcms.bean.NoticeBean;
+import com.qmuiteam.qmui.recyclerView.QMUISwipeAction;
+import com.qmuiteam.qmui.recyclerView.QMUISwipeViewHolder;
+import com.qmuiteam.qmui.util.QMUIDisplayHelper;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 9:47
+ * @email : 290677893@qq.com
+ **/
+public class SwipeViewAdapter extends RecyclerView.Adapter {
+
+ private List mData = new ArrayList<>();
+ private final QMUISwipeAction mDeleteAction;
+
+ public SwipeViewAdapter(Context context) {
+ QMUISwipeAction.ActionBuilder builder = new QMUISwipeAction.ActionBuilder()
+ .textSize(QMUIDisplayHelper.sp2px(context, 18))
+ .textColor(Color.WHITE)
+ .paddingStartEnd(QMUIDisplayHelper.dp2px(context, 18));
+ mDeleteAction = builder.text("删除").backgroundColor(Color.RED).build();
+ }
+
+ public void setData(@Nullable List list) {
+ mData.clear();
+ if (list != null) {
+ mData.addAll(list);
+ }
+ notifyDataSetChanged();
+ }
+
+ public void remove(int pos) {
+ mData.remove(pos);
+ notifyItemRemoved(pos);
+ }
+
+ @NonNull
+ @Override
+ public QMUISwipeViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_notice_list, parent, false);
+ final QMUISwipeViewHolder swipeViewHolder = new QMUISwipeViewHolder(view);
+ swipeViewHolder.addSwipeAction(mDeleteAction);
+ return swipeViewHolder;
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull QMUISwipeViewHolder holder, int position) {
+ TextView noticeTitleView = holder.itemView.findViewById(R.id.noticeTitleView);
+ TextView noticeDateView = holder.itemView.findViewById(R.id.noticeDateView);
+ TextView noticeContentView = holder.itemView.findViewById(R.id.noticeContentView);
+
+ NoticeBean noticeBean = mData.get(position);
+ noticeTitleView.setText(noticeBean.getNoticeTitle());
+ noticeDateView.setText(noticeBean.getNoticeDate());
+ noticeContentView.setText(noticeBean.getNoticeContent());
+ holder.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ clickListener.onClick(position);
+ }
+ });
+ }
+
+ @Override
+ public int getItemCount() {
+ return mData.size();
+ }
+
+ private OnItemClickListener clickListener;
+
+ public interface OnItemClickListener {
+ void onClick(int position);
+ }
+
+ public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
+ this.clickListener = onItemClickListener;
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/bean/DeptTreeBean.java b/app/src/main/java/com/casic/dcms/bean/DeptTreeBean.java
new file mode 100644
index 0000000..7f0f079
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/DeptTreeBean.java
@@ -0,0 +1,153 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 12:46
+ * @email : 290677893@qq.com
+ **/
+public class DeptTreeBean {
+
+ /**
+ * code : 200.0
+ * data : {"list":[{"checked":false,"code":"","id":"1177026995528237058","name":"指挥中心","open":false,"pcodes":"","pid":"24","value":""}]}
+ * message : 请求成功
+ * success : true
+ */
+
+ private double code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ private List list;
+
+ public List getList() {
+ return list;
+ }
+
+ public void setList(List list) {
+ this.list = list;
+ }
+
+ public static class ListBean {
+ /**
+ * checked : false
+ * code :
+ * id : 1177026995528237058
+ * name : 指挥中心
+ * open : false
+ * pcodes :
+ * pid : 24
+ * value :
+ */
+
+ private boolean checked;
+ private String code;
+ private String id;
+ private String name;
+ private boolean open;
+ private String pcodes;
+ private String pid;
+ private String value;
+
+ public boolean isChecked() {
+ return checked;
+ }
+
+ public void setChecked(boolean checked) {
+ this.checked = checked;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public boolean isOpen() {
+ return open;
+ }
+
+ public void setOpen(boolean open) {
+ this.open = open;
+ }
+
+ public String getPcodes() {
+ return pcodes;
+ }
+
+ public void setPcodes(String pcodes) {
+ this.pcodes = pcodes;
+ }
+
+ public String getPid() {
+ return pid;
+ }
+
+ public void setPid(String pid) {
+ this.pid = pid;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/NoticeBean.java b/app/src/main/java/com/casic/dcms/bean/NoticeBean.java
new file mode 100644
index 0000000..e68d12e
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/NoticeBean.java
@@ -0,0 +1,45 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 10:03
+ * @email : 290677893@qq.com
+ **/
+public class NoticeBean {
+ private String noticeTitle;
+ private String noticeDate;
+ private String noticeContent;
+ private String senderName;
+
+ public String getNoticeTitle() {
+ return noticeTitle;
+ }
+
+ public void setNoticeTitle(String noticeTitle) {
+ this.noticeTitle = noticeTitle;
+ }
+
+ public String getNoticeDate() {
+ return noticeDate;
+ }
+
+ public void setNoticeDate(String noticeDate) {
+ this.noticeDate = noticeDate;
+ }
+
+ public String getNoticeContent() {
+ return noticeContent;
+ }
+
+ public void setNoticeContent(String noticeContent) {
+ this.noticeContent = noticeContent;
+ }
+
+ public String getSenderName() {
+ return senderName;
+ }
+
+ public void setSenderName(String senderName) {
+ this.senderName = senderName;
+ }
+}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 7befe7c..54b3625 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -12,6 +12,7 @@
+
+
groupData = new ArrayList<>();
+ private List> childData = new ArrayList<>();
+ private LayoutInflater layoutInflater;
+
+ public DeptExpandableAdapter(Context mContext) {
+ layoutInflater = LayoutInflater.from(mContext);
+ }
+
+ public void setData(@Nullable List groupList, @Nullable List> childList) {
+ groupData.clear();
+ childData.clear();
+ if (groupList != null) {
+ this.groupData = groupList;
+ if (childList != null) {
+ this.childData = childList;
+ }
+ }
+ notifyDataSetChanged();
+ }
+
+ @Override
+ public int getGroupCount() {
+ return groupData.size();
+ }
+
+ @Override
+ public int getChildrenCount(int groupPosition) {
+ return childData.get(groupPosition).size();
+ }
+
+ @Override
+ public Object getGroup(int groupPosition) {
+ return groupData.get(groupPosition);
+ }
+
+ @Override
+ public Object getChild(int groupPosition, int childPosition) {
+ return childData.get(groupPosition).get(childPosition);
+ }
+
+ @Override
+ public long getGroupId(int groupPosition) {
+ return groupPosition;
+ }
+
+ @Override
+ public long getChildId(int groupPosition, int childPosition) {
+ return childPosition;
+ }
+
+ @Override
+ public boolean hasStableIds() {
+ return false;
+ }
+
+ @Override
+ public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
+ GroupViewHolder groupHolder;
+ if (convertView == null) {
+ convertView = layoutInflater.inflate(R.layout.item_group_list, parent, false);
+ groupHolder = new GroupViewHolder();
+ groupHolder.groupNameView = convertView.findViewById(R.id.groupNameView);
+ convertView.setTag(groupHolder);
+ } else {
+ groupHolder = (GroupViewHolder) convertView.getTag();
+ }
+ groupHolder.groupNameView.setText(groupData.get(groupPosition));
+ return convertView;
+ }
+
+ @Override
+ public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
+ ChildViewHolder itemHolder;
+ if (convertView == null) {
+ convertView = layoutInflater.inflate(R.layout.item_child_list, parent, false);
+ itemHolder = new ChildViewHolder();
+ itemHolder.childNameView = convertView.findViewById(R.id.childNameView);
+ itemHolder.childPhoneView = convertView.findViewById(R.id.childPhoneView);
+ convertView.setTag(itemHolder);
+ } else {
+ itemHolder = (ChildViewHolder) convertView.getTag();
+ }
+ itemHolder.childNameView.setText(childData.get(groupPosition).get(childPosition).getPersonName());
+ itemHolder.childPhoneView.setText(childData.get(groupPosition).get(childPosition).getPersonPhone());
+ return convertView;
+ }
+
+ //设置子列表是否可选中
+ @Override
+ public boolean isChildSelectable(int groupPosition, int childPosition) {
+ return true;
+ }
+
+ private static class GroupViewHolder {
+ private TextView groupNameView;
+ }
+
+ private static class ChildViewHolder {
+ private TextView childNameView;
+ private TextView childPhoneView;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/adapter/SwipeViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/SwipeViewAdapter.java
new file mode 100644
index 0000000..aa469ff
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/adapter/SwipeViewAdapter.java
@@ -0,0 +1,96 @@
+package com.casic.dcms.adapter;
+
+import android.content.Context;
+import android.graphics.Color;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.casic.dcms.R;
+import com.casic.dcms.bean.NoticeBean;
+import com.qmuiteam.qmui.recyclerView.QMUISwipeAction;
+import com.qmuiteam.qmui.recyclerView.QMUISwipeViewHolder;
+import com.qmuiteam.qmui.util.QMUIDisplayHelper;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 9:47
+ * @email : 290677893@qq.com
+ **/
+public class SwipeViewAdapter extends RecyclerView.Adapter {
+
+ private List mData = new ArrayList<>();
+ private final QMUISwipeAction mDeleteAction;
+
+ public SwipeViewAdapter(Context context) {
+ QMUISwipeAction.ActionBuilder builder = new QMUISwipeAction.ActionBuilder()
+ .textSize(QMUIDisplayHelper.sp2px(context, 18))
+ .textColor(Color.WHITE)
+ .paddingStartEnd(QMUIDisplayHelper.dp2px(context, 18));
+ mDeleteAction = builder.text("删除").backgroundColor(Color.RED).build();
+ }
+
+ public void setData(@Nullable List list) {
+ mData.clear();
+ if (list != null) {
+ mData.addAll(list);
+ }
+ notifyDataSetChanged();
+ }
+
+ public void remove(int pos) {
+ mData.remove(pos);
+ notifyItemRemoved(pos);
+ }
+
+ @NonNull
+ @Override
+ public QMUISwipeViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_notice_list, parent, false);
+ final QMUISwipeViewHolder swipeViewHolder = new QMUISwipeViewHolder(view);
+ swipeViewHolder.addSwipeAction(mDeleteAction);
+ return swipeViewHolder;
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull QMUISwipeViewHolder holder, int position) {
+ TextView noticeTitleView = holder.itemView.findViewById(R.id.noticeTitleView);
+ TextView noticeDateView = holder.itemView.findViewById(R.id.noticeDateView);
+ TextView noticeContentView = holder.itemView.findViewById(R.id.noticeContentView);
+
+ NoticeBean noticeBean = mData.get(position);
+ noticeTitleView.setText(noticeBean.getNoticeTitle());
+ noticeDateView.setText(noticeBean.getNoticeDate());
+ noticeContentView.setText(noticeBean.getNoticeContent());
+ holder.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ clickListener.onClick(position);
+ }
+ });
+ }
+
+ @Override
+ public int getItemCount() {
+ return mData.size();
+ }
+
+ private OnItemClickListener clickListener;
+
+ public interface OnItemClickListener {
+ void onClick(int position);
+ }
+
+ public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
+ this.clickListener = onItemClickListener;
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/bean/DeptTreeBean.java b/app/src/main/java/com/casic/dcms/bean/DeptTreeBean.java
new file mode 100644
index 0000000..7f0f079
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/DeptTreeBean.java
@@ -0,0 +1,153 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 12:46
+ * @email : 290677893@qq.com
+ **/
+public class DeptTreeBean {
+
+ /**
+ * code : 200.0
+ * data : {"list":[{"checked":false,"code":"","id":"1177026995528237058","name":"指挥中心","open":false,"pcodes":"","pid":"24","value":""}]}
+ * message : 请求成功
+ * success : true
+ */
+
+ private double code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ private List list;
+
+ public List getList() {
+ return list;
+ }
+
+ public void setList(List list) {
+ this.list = list;
+ }
+
+ public static class ListBean {
+ /**
+ * checked : false
+ * code :
+ * id : 1177026995528237058
+ * name : 指挥中心
+ * open : false
+ * pcodes :
+ * pid : 24
+ * value :
+ */
+
+ private boolean checked;
+ private String code;
+ private String id;
+ private String name;
+ private boolean open;
+ private String pcodes;
+ private String pid;
+ private String value;
+
+ public boolean isChecked() {
+ return checked;
+ }
+
+ public void setChecked(boolean checked) {
+ this.checked = checked;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public boolean isOpen() {
+ return open;
+ }
+
+ public void setOpen(boolean open) {
+ this.open = open;
+ }
+
+ public String getPcodes() {
+ return pcodes;
+ }
+
+ public void setPcodes(String pcodes) {
+ this.pcodes = pcodes;
+ }
+
+ public String getPid() {
+ return pid;
+ }
+
+ public void setPid(String pid) {
+ this.pid = pid;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/NoticeBean.java b/app/src/main/java/com/casic/dcms/bean/NoticeBean.java
new file mode 100644
index 0000000..e68d12e
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/NoticeBean.java
@@ -0,0 +1,45 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 10:03
+ * @email : 290677893@qq.com
+ **/
+public class NoticeBean {
+ private String noticeTitle;
+ private String noticeDate;
+ private String noticeContent;
+ private String senderName;
+
+ public String getNoticeTitle() {
+ return noticeTitle;
+ }
+
+ public void setNoticeTitle(String noticeTitle) {
+ this.noticeTitle = noticeTitle;
+ }
+
+ public String getNoticeDate() {
+ return noticeDate;
+ }
+
+ public void setNoticeDate(String noticeDate) {
+ this.noticeDate = noticeDate;
+ }
+
+ public String getNoticeContent() {
+ return noticeContent;
+ }
+
+ public void setNoticeContent(String noticeContent) {
+ this.noticeContent = noticeContent;
+ }
+
+ public String getSenderName() {
+ return senderName;
+ }
+
+ public void setSenderName(String senderName) {
+ this.senderName = senderName;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/PersonPhoneBean.java b/app/src/main/java/com/casic/dcms/bean/PersonPhoneBean.java
new file mode 100644
index 0000000..d6443ac
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/PersonPhoneBean.java
@@ -0,0 +1,27 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 13:00
+ * @email : 290677893@qq.com
+ **/
+public class PersonPhoneBean {
+ private String personName;
+ private String personPhone;
+
+ public String getPersonName() {
+ return personName;
+ }
+
+ public void setPersonName(String personName) {
+ this.personName = personName;
+ }
+
+ public String getPersonPhone() {
+ return personPhone;
+ }
+
+ public void setPersonPhone(String personPhone) {
+ this.personPhone = personPhone;
+ }
+}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 7befe7c..54b3625 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -12,6 +12,7 @@
+
+
groupData = new ArrayList<>();
+ private List> childData = new ArrayList<>();
+ private LayoutInflater layoutInflater;
+
+ public DeptExpandableAdapter(Context mContext) {
+ layoutInflater = LayoutInflater.from(mContext);
+ }
+
+ public void setData(@Nullable List groupList, @Nullable List> childList) {
+ groupData.clear();
+ childData.clear();
+ if (groupList != null) {
+ this.groupData = groupList;
+ if (childList != null) {
+ this.childData = childList;
+ }
+ }
+ notifyDataSetChanged();
+ }
+
+ @Override
+ public int getGroupCount() {
+ return groupData.size();
+ }
+
+ @Override
+ public int getChildrenCount(int groupPosition) {
+ return childData.get(groupPosition).size();
+ }
+
+ @Override
+ public Object getGroup(int groupPosition) {
+ return groupData.get(groupPosition);
+ }
+
+ @Override
+ public Object getChild(int groupPosition, int childPosition) {
+ return childData.get(groupPosition).get(childPosition);
+ }
+
+ @Override
+ public long getGroupId(int groupPosition) {
+ return groupPosition;
+ }
+
+ @Override
+ public long getChildId(int groupPosition, int childPosition) {
+ return childPosition;
+ }
+
+ @Override
+ public boolean hasStableIds() {
+ return false;
+ }
+
+ @Override
+ public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
+ GroupViewHolder groupHolder;
+ if (convertView == null) {
+ convertView = layoutInflater.inflate(R.layout.item_group_list, parent, false);
+ groupHolder = new GroupViewHolder();
+ groupHolder.groupNameView = convertView.findViewById(R.id.groupNameView);
+ convertView.setTag(groupHolder);
+ } else {
+ groupHolder = (GroupViewHolder) convertView.getTag();
+ }
+ groupHolder.groupNameView.setText(groupData.get(groupPosition));
+ return convertView;
+ }
+
+ @Override
+ public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
+ ChildViewHolder itemHolder;
+ if (convertView == null) {
+ convertView = layoutInflater.inflate(R.layout.item_child_list, parent, false);
+ itemHolder = new ChildViewHolder();
+ itemHolder.childNameView = convertView.findViewById(R.id.childNameView);
+ itemHolder.childPhoneView = convertView.findViewById(R.id.childPhoneView);
+ convertView.setTag(itemHolder);
+ } else {
+ itemHolder = (ChildViewHolder) convertView.getTag();
+ }
+ itemHolder.childNameView.setText(childData.get(groupPosition).get(childPosition).getPersonName());
+ itemHolder.childPhoneView.setText(childData.get(groupPosition).get(childPosition).getPersonPhone());
+ return convertView;
+ }
+
+ //设置子列表是否可选中
+ @Override
+ public boolean isChildSelectable(int groupPosition, int childPosition) {
+ return true;
+ }
+
+ private static class GroupViewHolder {
+ private TextView groupNameView;
+ }
+
+ private static class ChildViewHolder {
+ private TextView childNameView;
+ private TextView childPhoneView;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/adapter/SwipeViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/SwipeViewAdapter.java
new file mode 100644
index 0000000..aa469ff
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/adapter/SwipeViewAdapter.java
@@ -0,0 +1,96 @@
+package com.casic.dcms.adapter;
+
+import android.content.Context;
+import android.graphics.Color;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.casic.dcms.R;
+import com.casic.dcms.bean.NoticeBean;
+import com.qmuiteam.qmui.recyclerView.QMUISwipeAction;
+import com.qmuiteam.qmui.recyclerView.QMUISwipeViewHolder;
+import com.qmuiteam.qmui.util.QMUIDisplayHelper;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 9:47
+ * @email : 290677893@qq.com
+ **/
+public class SwipeViewAdapter extends RecyclerView.Adapter {
+
+ private List mData = new ArrayList<>();
+ private final QMUISwipeAction mDeleteAction;
+
+ public SwipeViewAdapter(Context context) {
+ QMUISwipeAction.ActionBuilder builder = new QMUISwipeAction.ActionBuilder()
+ .textSize(QMUIDisplayHelper.sp2px(context, 18))
+ .textColor(Color.WHITE)
+ .paddingStartEnd(QMUIDisplayHelper.dp2px(context, 18));
+ mDeleteAction = builder.text("删除").backgroundColor(Color.RED).build();
+ }
+
+ public void setData(@Nullable List list) {
+ mData.clear();
+ if (list != null) {
+ mData.addAll(list);
+ }
+ notifyDataSetChanged();
+ }
+
+ public void remove(int pos) {
+ mData.remove(pos);
+ notifyItemRemoved(pos);
+ }
+
+ @NonNull
+ @Override
+ public QMUISwipeViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_notice_list, parent, false);
+ final QMUISwipeViewHolder swipeViewHolder = new QMUISwipeViewHolder(view);
+ swipeViewHolder.addSwipeAction(mDeleteAction);
+ return swipeViewHolder;
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull QMUISwipeViewHolder holder, int position) {
+ TextView noticeTitleView = holder.itemView.findViewById(R.id.noticeTitleView);
+ TextView noticeDateView = holder.itemView.findViewById(R.id.noticeDateView);
+ TextView noticeContentView = holder.itemView.findViewById(R.id.noticeContentView);
+
+ NoticeBean noticeBean = mData.get(position);
+ noticeTitleView.setText(noticeBean.getNoticeTitle());
+ noticeDateView.setText(noticeBean.getNoticeDate());
+ noticeContentView.setText(noticeBean.getNoticeContent());
+ holder.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ clickListener.onClick(position);
+ }
+ });
+ }
+
+ @Override
+ public int getItemCount() {
+ return mData.size();
+ }
+
+ private OnItemClickListener clickListener;
+
+ public interface OnItemClickListener {
+ void onClick(int position);
+ }
+
+ public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
+ this.clickListener = onItemClickListener;
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/bean/DeptTreeBean.java b/app/src/main/java/com/casic/dcms/bean/DeptTreeBean.java
new file mode 100644
index 0000000..7f0f079
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/DeptTreeBean.java
@@ -0,0 +1,153 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 12:46
+ * @email : 290677893@qq.com
+ **/
+public class DeptTreeBean {
+
+ /**
+ * code : 200.0
+ * data : {"list":[{"checked":false,"code":"","id":"1177026995528237058","name":"指挥中心","open":false,"pcodes":"","pid":"24","value":""}]}
+ * message : 请求成功
+ * success : true
+ */
+
+ private double code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ private List list;
+
+ public List getList() {
+ return list;
+ }
+
+ public void setList(List list) {
+ this.list = list;
+ }
+
+ public static class ListBean {
+ /**
+ * checked : false
+ * code :
+ * id : 1177026995528237058
+ * name : 指挥中心
+ * open : false
+ * pcodes :
+ * pid : 24
+ * value :
+ */
+
+ private boolean checked;
+ private String code;
+ private String id;
+ private String name;
+ private boolean open;
+ private String pcodes;
+ private String pid;
+ private String value;
+
+ public boolean isChecked() {
+ return checked;
+ }
+
+ public void setChecked(boolean checked) {
+ this.checked = checked;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public boolean isOpen() {
+ return open;
+ }
+
+ public void setOpen(boolean open) {
+ this.open = open;
+ }
+
+ public String getPcodes() {
+ return pcodes;
+ }
+
+ public void setPcodes(String pcodes) {
+ this.pcodes = pcodes;
+ }
+
+ public String getPid() {
+ return pid;
+ }
+
+ public void setPid(String pid) {
+ this.pid = pid;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/NoticeBean.java b/app/src/main/java/com/casic/dcms/bean/NoticeBean.java
new file mode 100644
index 0000000..e68d12e
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/NoticeBean.java
@@ -0,0 +1,45 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 10:03
+ * @email : 290677893@qq.com
+ **/
+public class NoticeBean {
+ private String noticeTitle;
+ private String noticeDate;
+ private String noticeContent;
+ private String senderName;
+
+ public String getNoticeTitle() {
+ return noticeTitle;
+ }
+
+ public void setNoticeTitle(String noticeTitle) {
+ this.noticeTitle = noticeTitle;
+ }
+
+ public String getNoticeDate() {
+ return noticeDate;
+ }
+
+ public void setNoticeDate(String noticeDate) {
+ this.noticeDate = noticeDate;
+ }
+
+ public String getNoticeContent() {
+ return noticeContent;
+ }
+
+ public void setNoticeContent(String noticeContent) {
+ this.noticeContent = noticeContent;
+ }
+
+ public String getSenderName() {
+ return senderName;
+ }
+
+ public void setSenderName(String senderName) {
+ this.senderName = senderName;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/PersonPhoneBean.java b/app/src/main/java/com/casic/dcms/bean/PersonPhoneBean.java
new file mode 100644
index 0000000..d6443ac
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/PersonPhoneBean.java
@@ -0,0 +1,27 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 13:00
+ * @email : 290677893@qq.com
+ **/
+public class PersonPhoneBean {
+ private String personName;
+ private String personPhone;
+
+ public String getPersonName() {
+ return personName;
+ }
+
+ public void setPersonName(String personName) {
+ this.personName = personName;
+ }
+
+ public String getPersonPhone() {
+ return personPhone;
+ }
+
+ public void setPersonPhone(String personPhone) {
+ this.personPhone = personPhone;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/PhoneBookBean.java b/app/src/main/java/com/casic/dcms/bean/PhoneBookBean.java
new file mode 100644
index 0000000..9242676
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/PhoneBookBean.java
@@ -0,0 +1,131 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 11:34
+ * @email : 290677893@qq.com
+ **/
+public class PhoneBookBean {
+
+ /**
+ * code : 200.0
+ * data : [{"account":"sp_zhcg","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1206921310454312961","name":"中心视频","phone":""},{"account":"cgzbz","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177048865279356930","name":"值班长","phone":""},{"account":"pacr_dp","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1355036418525347842","name":"平安崇仁对接用户","phone":""},{"account":"cgzhz","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177049102999924737","name":"指挥长","phone":"18600202669"},{"account":"cgjd03","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1196382448976011266","name":"李斌","phone":""},{"account":"cgjd01","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177050541084160002","name":"王金龙","phone":"18600202669"},{"account":"cgsl01","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177050327115935746","name":"白雅茹","phone":""},{"account":"cgpq01","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177050762996396034","name":"艾闻","phone":""},{"account":"cgjd02","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177050541084160013","name":"苗建峰","phone":""},{"account":"cgld","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1193696400776249345","name":"领导","phone":""}]
+ * message : 请求成功
+ * success : true
+ */
+
+ private double code;
+ private String message;
+ private boolean success;
+ private List data;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public static class DataBean {
+ /**
+ * account : sp_zhcg
+ * attr1 :
+ * deptId : 1177026995528237058
+ * deptName : 指挥中心
+ * id : 1206921310454312961
+ * name : 中心视频
+ * phone :
+ */
+
+ private String account;
+ private String attr1;
+ private String deptId;
+ private String deptName;
+ private String id;
+ private String name;
+ private String phone;
+
+ public String getAccount() {
+ return account;
+ }
+
+ public void setAccount(String account) {
+ this.account = account;
+ }
+
+ public String getAttr1() {
+ return attr1;
+ }
+
+ public void setAttr1(String attr1) {
+ this.attr1 = attr1;
+ }
+
+ public String getDeptId() {
+ return deptId;
+ }
+
+ public void setDeptId(String deptId) {
+ this.deptId = deptId;
+ }
+
+ public String getDeptName() {
+ return deptName;
+ }
+
+ public void setDeptName(String deptName) {
+ this.deptName = deptName;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+ }
+}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 7befe7c..54b3625 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -12,6 +12,7 @@
+
+
groupData = new ArrayList<>();
+ private List> childData = new ArrayList<>();
+ private LayoutInflater layoutInflater;
+
+ public DeptExpandableAdapter(Context mContext) {
+ layoutInflater = LayoutInflater.from(mContext);
+ }
+
+ public void setData(@Nullable List groupList, @Nullable List> childList) {
+ groupData.clear();
+ childData.clear();
+ if (groupList != null) {
+ this.groupData = groupList;
+ if (childList != null) {
+ this.childData = childList;
+ }
+ }
+ notifyDataSetChanged();
+ }
+
+ @Override
+ public int getGroupCount() {
+ return groupData.size();
+ }
+
+ @Override
+ public int getChildrenCount(int groupPosition) {
+ return childData.get(groupPosition).size();
+ }
+
+ @Override
+ public Object getGroup(int groupPosition) {
+ return groupData.get(groupPosition);
+ }
+
+ @Override
+ public Object getChild(int groupPosition, int childPosition) {
+ return childData.get(groupPosition).get(childPosition);
+ }
+
+ @Override
+ public long getGroupId(int groupPosition) {
+ return groupPosition;
+ }
+
+ @Override
+ public long getChildId(int groupPosition, int childPosition) {
+ return childPosition;
+ }
+
+ @Override
+ public boolean hasStableIds() {
+ return false;
+ }
+
+ @Override
+ public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
+ GroupViewHolder groupHolder;
+ if (convertView == null) {
+ convertView = layoutInflater.inflate(R.layout.item_group_list, parent, false);
+ groupHolder = new GroupViewHolder();
+ groupHolder.groupNameView = convertView.findViewById(R.id.groupNameView);
+ convertView.setTag(groupHolder);
+ } else {
+ groupHolder = (GroupViewHolder) convertView.getTag();
+ }
+ groupHolder.groupNameView.setText(groupData.get(groupPosition));
+ return convertView;
+ }
+
+ @Override
+ public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
+ ChildViewHolder itemHolder;
+ if (convertView == null) {
+ convertView = layoutInflater.inflate(R.layout.item_child_list, parent, false);
+ itemHolder = new ChildViewHolder();
+ itemHolder.childNameView = convertView.findViewById(R.id.childNameView);
+ itemHolder.childPhoneView = convertView.findViewById(R.id.childPhoneView);
+ convertView.setTag(itemHolder);
+ } else {
+ itemHolder = (ChildViewHolder) convertView.getTag();
+ }
+ itemHolder.childNameView.setText(childData.get(groupPosition).get(childPosition).getPersonName());
+ itemHolder.childPhoneView.setText(childData.get(groupPosition).get(childPosition).getPersonPhone());
+ return convertView;
+ }
+
+ //设置子列表是否可选中
+ @Override
+ public boolean isChildSelectable(int groupPosition, int childPosition) {
+ return true;
+ }
+
+ private static class GroupViewHolder {
+ private TextView groupNameView;
+ }
+
+ private static class ChildViewHolder {
+ private TextView childNameView;
+ private TextView childPhoneView;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/adapter/SwipeViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/SwipeViewAdapter.java
new file mode 100644
index 0000000..aa469ff
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/adapter/SwipeViewAdapter.java
@@ -0,0 +1,96 @@
+package com.casic.dcms.adapter;
+
+import android.content.Context;
+import android.graphics.Color;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.casic.dcms.R;
+import com.casic.dcms.bean.NoticeBean;
+import com.qmuiteam.qmui.recyclerView.QMUISwipeAction;
+import com.qmuiteam.qmui.recyclerView.QMUISwipeViewHolder;
+import com.qmuiteam.qmui.util.QMUIDisplayHelper;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 9:47
+ * @email : 290677893@qq.com
+ **/
+public class SwipeViewAdapter extends RecyclerView.Adapter {
+
+ private List mData = new ArrayList<>();
+ private final QMUISwipeAction mDeleteAction;
+
+ public SwipeViewAdapter(Context context) {
+ QMUISwipeAction.ActionBuilder builder = new QMUISwipeAction.ActionBuilder()
+ .textSize(QMUIDisplayHelper.sp2px(context, 18))
+ .textColor(Color.WHITE)
+ .paddingStartEnd(QMUIDisplayHelper.dp2px(context, 18));
+ mDeleteAction = builder.text("删除").backgroundColor(Color.RED).build();
+ }
+
+ public void setData(@Nullable List list) {
+ mData.clear();
+ if (list != null) {
+ mData.addAll(list);
+ }
+ notifyDataSetChanged();
+ }
+
+ public void remove(int pos) {
+ mData.remove(pos);
+ notifyItemRemoved(pos);
+ }
+
+ @NonNull
+ @Override
+ public QMUISwipeViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_notice_list, parent, false);
+ final QMUISwipeViewHolder swipeViewHolder = new QMUISwipeViewHolder(view);
+ swipeViewHolder.addSwipeAction(mDeleteAction);
+ return swipeViewHolder;
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull QMUISwipeViewHolder holder, int position) {
+ TextView noticeTitleView = holder.itemView.findViewById(R.id.noticeTitleView);
+ TextView noticeDateView = holder.itemView.findViewById(R.id.noticeDateView);
+ TextView noticeContentView = holder.itemView.findViewById(R.id.noticeContentView);
+
+ NoticeBean noticeBean = mData.get(position);
+ noticeTitleView.setText(noticeBean.getNoticeTitle());
+ noticeDateView.setText(noticeBean.getNoticeDate());
+ noticeContentView.setText(noticeBean.getNoticeContent());
+ holder.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ clickListener.onClick(position);
+ }
+ });
+ }
+
+ @Override
+ public int getItemCount() {
+ return mData.size();
+ }
+
+ private OnItemClickListener clickListener;
+
+ public interface OnItemClickListener {
+ void onClick(int position);
+ }
+
+ public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
+ this.clickListener = onItemClickListener;
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/bean/DeptTreeBean.java b/app/src/main/java/com/casic/dcms/bean/DeptTreeBean.java
new file mode 100644
index 0000000..7f0f079
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/DeptTreeBean.java
@@ -0,0 +1,153 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 12:46
+ * @email : 290677893@qq.com
+ **/
+public class DeptTreeBean {
+
+ /**
+ * code : 200.0
+ * data : {"list":[{"checked":false,"code":"","id":"1177026995528237058","name":"指挥中心","open":false,"pcodes":"","pid":"24","value":""}]}
+ * message : 请求成功
+ * success : true
+ */
+
+ private double code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ private List list;
+
+ public List getList() {
+ return list;
+ }
+
+ public void setList(List list) {
+ this.list = list;
+ }
+
+ public static class ListBean {
+ /**
+ * checked : false
+ * code :
+ * id : 1177026995528237058
+ * name : 指挥中心
+ * open : false
+ * pcodes :
+ * pid : 24
+ * value :
+ */
+
+ private boolean checked;
+ private String code;
+ private String id;
+ private String name;
+ private boolean open;
+ private String pcodes;
+ private String pid;
+ private String value;
+
+ public boolean isChecked() {
+ return checked;
+ }
+
+ public void setChecked(boolean checked) {
+ this.checked = checked;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public boolean isOpen() {
+ return open;
+ }
+
+ public void setOpen(boolean open) {
+ this.open = open;
+ }
+
+ public String getPcodes() {
+ return pcodes;
+ }
+
+ public void setPcodes(String pcodes) {
+ this.pcodes = pcodes;
+ }
+
+ public String getPid() {
+ return pid;
+ }
+
+ public void setPid(String pid) {
+ this.pid = pid;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/NoticeBean.java b/app/src/main/java/com/casic/dcms/bean/NoticeBean.java
new file mode 100644
index 0000000..e68d12e
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/NoticeBean.java
@@ -0,0 +1,45 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 10:03
+ * @email : 290677893@qq.com
+ **/
+public class NoticeBean {
+ private String noticeTitle;
+ private String noticeDate;
+ private String noticeContent;
+ private String senderName;
+
+ public String getNoticeTitle() {
+ return noticeTitle;
+ }
+
+ public void setNoticeTitle(String noticeTitle) {
+ this.noticeTitle = noticeTitle;
+ }
+
+ public String getNoticeDate() {
+ return noticeDate;
+ }
+
+ public void setNoticeDate(String noticeDate) {
+ this.noticeDate = noticeDate;
+ }
+
+ public String getNoticeContent() {
+ return noticeContent;
+ }
+
+ public void setNoticeContent(String noticeContent) {
+ this.noticeContent = noticeContent;
+ }
+
+ public String getSenderName() {
+ return senderName;
+ }
+
+ public void setSenderName(String senderName) {
+ this.senderName = senderName;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/PersonPhoneBean.java b/app/src/main/java/com/casic/dcms/bean/PersonPhoneBean.java
new file mode 100644
index 0000000..d6443ac
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/PersonPhoneBean.java
@@ -0,0 +1,27 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 13:00
+ * @email : 290677893@qq.com
+ **/
+public class PersonPhoneBean {
+ private String personName;
+ private String personPhone;
+
+ public String getPersonName() {
+ return personName;
+ }
+
+ public void setPersonName(String personName) {
+ this.personName = personName;
+ }
+
+ public String getPersonPhone() {
+ return personPhone;
+ }
+
+ public void setPersonPhone(String personPhone) {
+ this.personPhone = personPhone;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/PhoneBookBean.java b/app/src/main/java/com/casic/dcms/bean/PhoneBookBean.java
new file mode 100644
index 0000000..9242676
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/PhoneBookBean.java
@@ -0,0 +1,131 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 11:34
+ * @email : 290677893@qq.com
+ **/
+public class PhoneBookBean {
+
+ /**
+ * code : 200.0
+ * data : [{"account":"sp_zhcg","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1206921310454312961","name":"中心视频","phone":""},{"account":"cgzbz","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177048865279356930","name":"值班长","phone":""},{"account":"pacr_dp","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1355036418525347842","name":"平安崇仁对接用户","phone":""},{"account":"cgzhz","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177049102999924737","name":"指挥长","phone":"18600202669"},{"account":"cgjd03","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1196382448976011266","name":"李斌","phone":""},{"account":"cgjd01","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177050541084160002","name":"王金龙","phone":"18600202669"},{"account":"cgsl01","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177050327115935746","name":"白雅茹","phone":""},{"account":"cgpq01","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177050762996396034","name":"艾闻","phone":""},{"account":"cgjd02","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177050541084160013","name":"苗建峰","phone":""},{"account":"cgld","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1193696400776249345","name":"领导","phone":""}]
+ * message : 请求成功
+ * success : true
+ */
+
+ private double code;
+ private String message;
+ private boolean success;
+ private List data;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public static class DataBean {
+ /**
+ * account : sp_zhcg
+ * attr1 :
+ * deptId : 1177026995528237058
+ * deptName : 指挥中心
+ * id : 1206921310454312961
+ * name : 中心视频
+ * phone :
+ */
+
+ private String account;
+ private String attr1;
+ private String deptId;
+ private String deptName;
+ private String id;
+ private String name;
+ private String phone;
+
+ public String getAccount() {
+ return account;
+ }
+
+ public void setAccount(String account) {
+ this.account = account;
+ }
+
+ public String getAttr1() {
+ return attr1;
+ }
+
+ public void setAttr1(String attr1) {
+ this.attr1 = attr1;
+ }
+
+ public String getDeptId() {
+ return deptId;
+ }
+
+ public void setDeptId(String deptId) {
+ this.deptId = deptId;
+ }
+
+ public String getDeptName() {
+ return deptName;
+ }
+
+ public void setDeptName(String deptName) {
+ this.deptName = deptName;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/DeptTreeModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/DeptTreeModelImpl.java
new file mode 100644
index 0000000..c9af913
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/DeptTreeModelImpl.java
@@ -0,0 +1,58 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.DeptTreeBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 12:35
+ * @email : 290677893@qq.com
+ **/
+public class DeptTreeModelImpl implements IDeptTreeModel {
+
+ private OnGetDeptTreeListener listener;
+
+ public DeptTreeModelImpl(OnGetDeptTreeListener changedListener) {
+ this.listener = changedListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnGetDeptTreeListener {
+ void onSuccess(DeptTreeBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String pid) {
+ Observable observable = RetrofitServiceManager.getDeptTreeResult(pid);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(DeptTreeBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 7befe7c..54b3625 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -12,6 +12,7 @@
+
+
groupData = new ArrayList<>();
+ private List> childData = new ArrayList<>();
+ private LayoutInflater layoutInflater;
+
+ public DeptExpandableAdapter(Context mContext) {
+ layoutInflater = LayoutInflater.from(mContext);
+ }
+
+ public void setData(@Nullable List groupList, @Nullable List> childList) {
+ groupData.clear();
+ childData.clear();
+ if (groupList != null) {
+ this.groupData = groupList;
+ if (childList != null) {
+ this.childData = childList;
+ }
+ }
+ notifyDataSetChanged();
+ }
+
+ @Override
+ public int getGroupCount() {
+ return groupData.size();
+ }
+
+ @Override
+ public int getChildrenCount(int groupPosition) {
+ return childData.get(groupPosition).size();
+ }
+
+ @Override
+ public Object getGroup(int groupPosition) {
+ return groupData.get(groupPosition);
+ }
+
+ @Override
+ public Object getChild(int groupPosition, int childPosition) {
+ return childData.get(groupPosition).get(childPosition);
+ }
+
+ @Override
+ public long getGroupId(int groupPosition) {
+ return groupPosition;
+ }
+
+ @Override
+ public long getChildId(int groupPosition, int childPosition) {
+ return childPosition;
+ }
+
+ @Override
+ public boolean hasStableIds() {
+ return false;
+ }
+
+ @Override
+ public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
+ GroupViewHolder groupHolder;
+ if (convertView == null) {
+ convertView = layoutInflater.inflate(R.layout.item_group_list, parent, false);
+ groupHolder = new GroupViewHolder();
+ groupHolder.groupNameView = convertView.findViewById(R.id.groupNameView);
+ convertView.setTag(groupHolder);
+ } else {
+ groupHolder = (GroupViewHolder) convertView.getTag();
+ }
+ groupHolder.groupNameView.setText(groupData.get(groupPosition));
+ return convertView;
+ }
+
+ @Override
+ public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
+ ChildViewHolder itemHolder;
+ if (convertView == null) {
+ convertView = layoutInflater.inflate(R.layout.item_child_list, parent, false);
+ itemHolder = new ChildViewHolder();
+ itemHolder.childNameView = convertView.findViewById(R.id.childNameView);
+ itemHolder.childPhoneView = convertView.findViewById(R.id.childPhoneView);
+ convertView.setTag(itemHolder);
+ } else {
+ itemHolder = (ChildViewHolder) convertView.getTag();
+ }
+ itemHolder.childNameView.setText(childData.get(groupPosition).get(childPosition).getPersonName());
+ itemHolder.childPhoneView.setText(childData.get(groupPosition).get(childPosition).getPersonPhone());
+ return convertView;
+ }
+
+ //设置子列表是否可选中
+ @Override
+ public boolean isChildSelectable(int groupPosition, int childPosition) {
+ return true;
+ }
+
+ private static class GroupViewHolder {
+ private TextView groupNameView;
+ }
+
+ private static class ChildViewHolder {
+ private TextView childNameView;
+ private TextView childPhoneView;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/adapter/SwipeViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/SwipeViewAdapter.java
new file mode 100644
index 0000000..aa469ff
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/adapter/SwipeViewAdapter.java
@@ -0,0 +1,96 @@
+package com.casic.dcms.adapter;
+
+import android.content.Context;
+import android.graphics.Color;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.casic.dcms.R;
+import com.casic.dcms.bean.NoticeBean;
+import com.qmuiteam.qmui.recyclerView.QMUISwipeAction;
+import com.qmuiteam.qmui.recyclerView.QMUISwipeViewHolder;
+import com.qmuiteam.qmui.util.QMUIDisplayHelper;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 9:47
+ * @email : 290677893@qq.com
+ **/
+public class SwipeViewAdapter extends RecyclerView.Adapter {
+
+ private List mData = new ArrayList<>();
+ private final QMUISwipeAction mDeleteAction;
+
+ public SwipeViewAdapter(Context context) {
+ QMUISwipeAction.ActionBuilder builder = new QMUISwipeAction.ActionBuilder()
+ .textSize(QMUIDisplayHelper.sp2px(context, 18))
+ .textColor(Color.WHITE)
+ .paddingStartEnd(QMUIDisplayHelper.dp2px(context, 18));
+ mDeleteAction = builder.text("删除").backgroundColor(Color.RED).build();
+ }
+
+ public void setData(@Nullable List list) {
+ mData.clear();
+ if (list != null) {
+ mData.addAll(list);
+ }
+ notifyDataSetChanged();
+ }
+
+ public void remove(int pos) {
+ mData.remove(pos);
+ notifyItemRemoved(pos);
+ }
+
+ @NonNull
+ @Override
+ public QMUISwipeViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_notice_list, parent, false);
+ final QMUISwipeViewHolder swipeViewHolder = new QMUISwipeViewHolder(view);
+ swipeViewHolder.addSwipeAction(mDeleteAction);
+ return swipeViewHolder;
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull QMUISwipeViewHolder holder, int position) {
+ TextView noticeTitleView = holder.itemView.findViewById(R.id.noticeTitleView);
+ TextView noticeDateView = holder.itemView.findViewById(R.id.noticeDateView);
+ TextView noticeContentView = holder.itemView.findViewById(R.id.noticeContentView);
+
+ NoticeBean noticeBean = mData.get(position);
+ noticeTitleView.setText(noticeBean.getNoticeTitle());
+ noticeDateView.setText(noticeBean.getNoticeDate());
+ noticeContentView.setText(noticeBean.getNoticeContent());
+ holder.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ clickListener.onClick(position);
+ }
+ });
+ }
+
+ @Override
+ public int getItemCount() {
+ return mData.size();
+ }
+
+ private OnItemClickListener clickListener;
+
+ public interface OnItemClickListener {
+ void onClick(int position);
+ }
+
+ public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
+ this.clickListener = onItemClickListener;
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/bean/DeptTreeBean.java b/app/src/main/java/com/casic/dcms/bean/DeptTreeBean.java
new file mode 100644
index 0000000..7f0f079
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/DeptTreeBean.java
@@ -0,0 +1,153 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 12:46
+ * @email : 290677893@qq.com
+ **/
+public class DeptTreeBean {
+
+ /**
+ * code : 200.0
+ * data : {"list":[{"checked":false,"code":"","id":"1177026995528237058","name":"指挥中心","open":false,"pcodes":"","pid":"24","value":""}]}
+ * message : 请求成功
+ * success : true
+ */
+
+ private double code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ private List list;
+
+ public List getList() {
+ return list;
+ }
+
+ public void setList(List list) {
+ this.list = list;
+ }
+
+ public static class ListBean {
+ /**
+ * checked : false
+ * code :
+ * id : 1177026995528237058
+ * name : 指挥中心
+ * open : false
+ * pcodes :
+ * pid : 24
+ * value :
+ */
+
+ private boolean checked;
+ private String code;
+ private String id;
+ private String name;
+ private boolean open;
+ private String pcodes;
+ private String pid;
+ private String value;
+
+ public boolean isChecked() {
+ return checked;
+ }
+
+ public void setChecked(boolean checked) {
+ this.checked = checked;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public boolean isOpen() {
+ return open;
+ }
+
+ public void setOpen(boolean open) {
+ this.open = open;
+ }
+
+ public String getPcodes() {
+ return pcodes;
+ }
+
+ public void setPcodes(String pcodes) {
+ this.pcodes = pcodes;
+ }
+
+ public String getPid() {
+ return pid;
+ }
+
+ public void setPid(String pid) {
+ this.pid = pid;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/NoticeBean.java b/app/src/main/java/com/casic/dcms/bean/NoticeBean.java
new file mode 100644
index 0000000..e68d12e
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/NoticeBean.java
@@ -0,0 +1,45 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 10:03
+ * @email : 290677893@qq.com
+ **/
+public class NoticeBean {
+ private String noticeTitle;
+ private String noticeDate;
+ private String noticeContent;
+ private String senderName;
+
+ public String getNoticeTitle() {
+ return noticeTitle;
+ }
+
+ public void setNoticeTitle(String noticeTitle) {
+ this.noticeTitle = noticeTitle;
+ }
+
+ public String getNoticeDate() {
+ return noticeDate;
+ }
+
+ public void setNoticeDate(String noticeDate) {
+ this.noticeDate = noticeDate;
+ }
+
+ public String getNoticeContent() {
+ return noticeContent;
+ }
+
+ public void setNoticeContent(String noticeContent) {
+ this.noticeContent = noticeContent;
+ }
+
+ public String getSenderName() {
+ return senderName;
+ }
+
+ public void setSenderName(String senderName) {
+ this.senderName = senderName;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/PersonPhoneBean.java b/app/src/main/java/com/casic/dcms/bean/PersonPhoneBean.java
new file mode 100644
index 0000000..d6443ac
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/PersonPhoneBean.java
@@ -0,0 +1,27 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 13:00
+ * @email : 290677893@qq.com
+ **/
+public class PersonPhoneBean {
+ private String personName;
+ private String personPhone;
+
+ public String getPersonName() {
+ return personName;
+ }
+
+ public void setPersonName(String personName) {
+ this.personName = personName;
+ }
+
+ public String getPersonPhone() {
+ return personPhone;
+ }
+
+ public void setPersonPhone(String personPhone) {
+ this.personPhone = personPhone;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/PhoneBookBean.java b/app/src/main/java/com/casic/dcms/bean/PhoneBookBean.java
new file mode 100644
index 0000000..9242676
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/PhoneBookBean.java
@@ -0,0 +1,131 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 11:34
+ * @email : 290677893@qq.com
+ **/
+public class PhoneBookBean {
+
+ /**
+ * code : 200.0
+ * data : [{"account":"sp_zhcg","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1206921310454312961","name":"中心视频","phone":""},{"account":"cgzbz","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177048865279356930","name":"值班长","phone":""},{"account":"pacr_dp","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1355036418525347842","name":"平安崇仁对接用户","phone":""},{"account":"cgzhz","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177049102999924737","name":"指挥长","phone":"18600202669"},{"account":"cgjd03","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1196382448976011266","name":"李斌","phone":""},{"account":"cgjd01","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177050541084160002","name":"王金龙","phone":"18600202669"},{"account":"cgsl01","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177050327115935746","name":"白雅茹","phone":""},{"account":"cgpq01","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177050762996396034","name":"艾闻","phone":""},{"account":"cgjd02","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177050541084160013","name":"苗建峰","phone":""},{"account":"cgld","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1193696400776249345","name":"领导","phone":""}]
+ * message : 请求成功
+ * success : true
+ */
+
+ private double code;
+ private String message;
+ private boolean success;
+ private List data;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public static class DataBean {
+ /**
+ * account : sp_zhcg
+ * attr1 :
+ * deptId : 1177026995528237058
+ * deptName : 指挥中心
+ * id : 1206921310454312961
+ * name : 中心视频
+ * phone :
+ */
+
+ private String account;
+ private String attr1;
+ private String deptId;
+ private String deptName;
+ private String id;
+ private String name;
+ private String phone;
+
+ public String getAccount() {
+ return account;
+ }
+
+ public void setAccount(String account) {
+ this.account = account;
+ }
+
+ public String getAttr1() {
+ return attr1;
+ }
+
+ public void setAttr1(String attr1) {
+ this.attr1 = attr1;
+ }
+
+ public String getDeptId() {
+ return deptId;
+ }
+
+ public void setDeptId(String deptId) {
+ this.deptId = deptId;
+ }
+
+ public String getDeptName() {
+ return deptName;
+ }
+
+ public void setDeptName(String deptName) {
+ this.deptName = deptName;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/DeptTreeModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/DeptTreeModelImpl.java
new file mode 100644
index 0000000..c9af913
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/DeptTreeModelImpl.java
@@ -0,0 +1,58 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.DeptTreeBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 12:35
+ * @email : 290677893@qq.com
+ **/
+public class DeptTreeModelImpl implements IDeptTreeModel {
+
+ private OnGetDeptTreeListener listener;
+
+ public DeptTreeModelImpl(OnGetDeptTreeListener changedListener) {
+ this.listener = changedListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnGetDeptTreeListener {
+ void onSuccess(DeptTreeBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String pid) {
+ Observable observable = RetrofitServiceManager.getDeptTreeResult(pid);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(DeptTreeBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IDeptTreeModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IDeptTreeModel.java
new file mode 100644
index 0000000..ab1947c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IDeptTreeModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IDeptTreeModel {
+ Subscription sendRetrofitRequest(String pid);
+}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 7befe7c..54b3625 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -12,6 +12,7 @@
+
+
groupData = new ArrayList<>();
+ private List> childData = new ArrayList<>();
+ private LayoutInflater layoutInflater;
+
+ public DeptExpandableAdapter(Context mContext) {
+ layoutInflater = LayoutInflater.from(mContext);
+ }
+
+ public void setData(@Nullable List groupList, @Nullable List> childList) {
+ groupData.clear();
+ childData.clear();
+ if (groupList != null) {
+ this.groupData = groupList;
+ if (childList != null) {
+ this.childData = childList;
+ }
+ }
+ notifyDataSetChanged();
+ }
+
+ @Override
+ public int getGroupCount() {
+ return groupData.size();
+ }
+
+ @Override
+ public int getChildrenCount(int groupPosition) {
+ return childData.get(groupPosition).size();
+ }
+
+ @Override
+ public Object getGroup(int groupPosition) {
+ return groupData.get(groupPosition);
+ }
+
+ @Override
+ public Object getChild(int groupPosition, int childPosition) {
+ return childData.get(groupPosition).get(childPosition);
+ }
+
+ @Override
+ public long getGroupId(int groupPosition) {
+ return groupPosition;
+ }
+
+ @Override
+ public long getChildId(int groupPosition, int childPosition) {
+ return childPosition;
+ }
+
+ @Override
+ public boolean hasStableIds() {
+ return false;
+ }
+
+ @Override
+ public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
+ GroupViewHolder groupHolder;
+ if (convertView == null) {
+ convertView = layoutInflater.inflate(R.layout.item_group_list, parent, false);
+ groupHolder = new GroupViewHolder();
+ groupHolder.groupNameView = convertView.findViewById(R.id.groupNameView);
+ convertView.setTag(groupHolder);
+ } else {
+ groupHolder = (GroupViewHolder) convertView.getTag();
+ }
+ groupHolder.groupNameView.setText(groupData.get(groupPosition));
+ return convertView;
+ }
+
+ @Override
+ public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
+ ChildViewHolder itemHolder;
+ if (convertView == null) {
+ convertView = layoutInflater.inflate(R.layout.item_child_list, parent, false);
+ itemHolder = new ChildViewHolder();
+ itemHolder.childNameView = convertView.findViewById(R.id.childNameView);
+ itemHolder.childPhoneView = convertView.findViewById(R.id.childPhoneView);
+ convertView.setTag(itemHolder);
+ } else {
+ itemHolder = (ChildViewHolder) convertView.getTag();
+ }
+ itemHolder.childNameView.setText(childData.get(groupPosition).get(childPosition).getPersonName());
+ itemHolder.childPhoneView.setText(childData.get(groupPosition).get(childPosition).getPersonPhone());
+ return convertView;
+ }
+
+ //设置子列表是否可选中
+ @Override
+ public boolean isChildSelectable(int groupPosition, int childPosition) {
+ return true;
+ }
+
+ private static class GroupViewHolder {
+ private TextView groupNameView;
+ }
+
+ private static class ChildViewHolder {
+ private TextView childNameView;
+ private TextView childPhoneView;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/adapter/SwipeViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/SwipeViewAdapter.java
new file mode 100644
index 0000000..aa469ff
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/adapter/SwipeViewAdapter.java
@@ -0,0 +1,96 @@
+package com.casic.dcms.adapter;
+
+import android.content.Context;
+import android.graphics.Color;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.casic.dcms.R;
+import com.casic.dcms.bean.NoticeBean;
+import com.qmuiteam.qmui.recyclerView.QMUISwipeAction;
+import com.qmuiteam.qmui.recyclerView.QMUISwipeViewHolder;
+import com.qmuiteam.qmui.util.QMUIDisplayHelper;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 9:47
+ * @email : 290677893@qq.com
+ **/
+public class SwipeViewAdapter extends RecyclerView.Adapter {
+
+ private List mData = new ArrayList<>();
+ private final QMUISwipeAction mDeleteAction;
+
+ public SwipeViewAdapter(Context context) {
+ QMUISwipeAction.ActionBuilder builder = new QMUISwipeAction.ActionBuilder()
+ .textSize(QMUIDisplayHelper.sp2px(context, 18))
+ .textColor(Color.WHITE)
+ .paddingStartEnd(QMUIDisplayHelper.dp2px(context, 18));
+ mDeleteAction = builder.text("删除").backgroundColor(Color.RED).build();
+ }
+
+ public void setData(@Nullable List list) {
+ mData.clear();
+ if (list != null) {
+ mData.addAll(list);
+ }
+ notifyDataSetChanged();
+ }
+
+ public void remove(int pos) {
+ mData.remove(pos);
+ notifyItemRemoved(pos);
+ }
+
+ @NonNull
+ @Override
+ public QMUISwipeViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_notice_list, parent, false);
+ final QMUISwipeViewHolder swipeViewHolder = new QMUISwipeViewHolder(view);
+ swipeViewHolder.addSwipeAction(mDeleteAction);
+ return swipeViewHolder;
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull QMUISwipeViewHolder holder, int position) {
+ TextView noticeTitleView = holder.itemView.findViewById(R.id.noticeTitleView);
+ TextView noticeDateView = holder.itemView.findViewById(R.id.noticeDateView);
+ TextView noticeContentView = holder.itemView.findViewById(R.id.noticeContentView);
+
+ NoticeBean noticeBean = mData.get(position);
+ noticeTitleView.setText(noticeBean.getNoticeTitle());
+ noticeDateView.setText(noticeBean.getNoticeDate());
+ noticeContentView.setText(noticeBean.getNoticeContent());
+ holder.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ clickListener.onClick(position);
+ }
+ });
+ }
+
+ @Override
+ public int getItemCount() {
+ return mData.size();
+ }
+
+ private OnItemClickListener clickListener;
+
+ public interface OnItemClickListener {
+ void onClick(int position);
+ }
+
+ public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
+ this.clickListener = onItemClickListener;
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/bean/DeptTreeBean.java b/app/src/main/java/com/casic/dcms/bean/DeptTreeBean.java
new file mode 100644
index 0000000..7f0f079
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/DeptTreeBean.java
@@ -0,0 +1,153 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 12:46
+ * @email : 290677893@qq.com
+ **/
+public class DeptTreeBean {
+
+ /**
+ * code : 200.0
+ * data : {"list":[{"checked":false,"code":"","id":"1177026995528237058","name":"指挥中心","open":false,"pcodes":"","pid":"24","value":""}]}
+ * message : 请求成功
+ * success : true
+ */
+
+ private double code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ private List list;
+
+ public List getList() {
+ return list;
+ }
+
+ public void setList(List list) {
+ this.list = list;
+ }
+
+ public static class ListBean {
+ /**
+ * checked : false
+ * code :
+ * id : 1177026995528237058
+ * name : 指挥中心
+ * open : false
+ * pcodes :
+ * pid : 24
+ * value :
+ */
+
+ private boolean checked;
+ private String code;
+ private String id;
+ private String name;
+ private boolean open;
+ private String pcodes;
+ private String pid;
+ private String value;
+
+ public boolean isChecked() {
+ return checked;
+ }
+
+ public void setChecked(boolean checked) {
+ this.checked = checked;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public boolean isOpen() {
+ return open;
+ }
+
+ public void setOpen(boolean open) {
+ this.open = open;
+ }
+
+ public String getPcodes() {
+ return pcodes;
+ }
+
+ public void setPcodes(String pcodes) {
+ this.pcodes = pcodes;
+ }
+
+ public String getPid() {
+ return pid;
+ }
+
+ public void setPid(String pid) {
+ this.pid = pid;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/NoticeBean.java b/app/src/main/java/com/casic/dcms/bean/NoticeBean.java
new file mode 100644
index 0000000..e68d12e
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/NoticeBean.java
@@ -0,0 +1,45 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 10:03
+ * @email : 290677893@qq.com
+ **/
+public class NoticeBean {
+ private String noticeTitle;
+ private String noticeDate;
+ private String noticeContent;
+ private String senderName;
+
+ public String getNoticeTitle() {
+ return noticeTitle;
+ }
+
+ public void setNoticeTitle(String noticeTitle) {
+ this.noticeTitle = noticeTitle;
+ }
+
+ public String getNoticeDate() {
+ return noticeDate;
+ }
+
+ public void setNoticeDate(String noticeDate) {
+ this.noticeDate = noticeDate;
+ }
+
+ public String getNoticeContent() {
+ return noticeContent;
+ }
+
+ public void setNoticeContent(String noticeContent) {
+ this.noticeContent = noticeContent;
+ }
+
+ public String getSenderName() {
+ return senderName;
+ }
+
+ public void setSenderName(String senderName) {
+ this.senderName = senderName;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/PersonPhoneBean.java b/app/src/main/java/com/casic/dcms/bean/PersonPhoneBean.java
new file mode 100644
index 0000000..d6443ac
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/PersonPhoneBean.java
@@ -0,0 +1,27 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 13:00
+ * @email : 290677893@qq.com
+ **/
+public class PersonPhoneBean {
+ private String personName;
+ private String personPhone;
+
+ public String getPersonName() {
+ return personName;
+ }
+
+ public void setPersonName(String personName) {
+ this.personName = personName;
+ }
+
+ public String getPersonPhone() {
+ return personPhone;
+ }
+
+ public void setPersonPhone(String personPhone) {
+ this.personPhone = personPhone;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/PhoneBookBean.java b/app/src/main/java/com/casic/dcms/bean/PhoneBookBean.java
new file mode 100644
index 0000000..9242676
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/PhoneBookBean.java
@@ -0,0 +1,131 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 11:34
+ * @email : 290677893@qq.com
+ **/
+public class PhoneBookBean {
+
+ /**
+ * code : 200.0
+ * data : [{"account":"sp_zhcg","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1206921310454312961","name":"中心视频","phone":""},{"account":"cgzbz","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177048865279356930","name":"值班长","phone":""},{"account":"pacr_dp","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1355036418525347842","name":"平安崇仁对接用户","phone":""},{"account":"cgzhz","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177049102999924737","name":"指挥长","phone":"18600202669"},{"account":"cgjd03","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1196382448976011266","name":"李斌","phone":""},{"account":"cgjd01","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177050541084160002","name":"王金龙","phone":"18600202669"},{"account":"cgsl01","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177050327115935746","name":"白雅茹","phone":""},{"account":"cgpq01","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177050762996396034","name":"艾闻","phone":""},{"account":"cgjd02","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177050541084160013","name":"苗建峰","phone":""},{"account":"cgld","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1193696400776249345","name":"领导","phone":""}]
+ * message : 请求成功
+ * success : true
+ */
+
+ private double code;
+ private String message;
+ private boolean success;
+ private List data;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public static class DataBean {
+ /**
+ * account : sp_zhcg
+ * attr1 :
+ * deptId : 1177026995528237058
+ * deptName : 指挥中心
+ * id : 1206921310454312961
+ * name : 中心视频
+ * phone :
+ */
+
+ private String account;
+ private String attr1;
+ private String deptId;
+ private String deptName;
+ private String id;
+ private String name;
+ private String phone;
+
+ public String getAccount() {
+ return account;
+ }
+
+ public void setAccount(String account) {
+ this.account = account;
+ }
+
+ public String getAttr1() {
+ return attr1;
+ }
+
+ public void setAttr1(String attr1) {
+ this.attr1 = attr1;
+ }
+
+ public String getDeptId() {
+ return deptId;
+ }
+
+ public void setDeptId(String deptId) {
+ this.deptId = deptId;
+ }
+
+ public String getDeptName() {
+ return deptName;
+ }
+
+ public void setDeptName(String deptName) {
+ this.deptName = deptName;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/DeptTreeModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/DeptTreeModelImpl.java
new file mode 100644
index 0000000..c9af913
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/DeptTreeModelImpl.java
@@ -0,0 +1,58 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.DeptTreeBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 12:35
+ * @email : 290677893@qq.com
+ **/
+public class DeptTreeModelImpl implements IDeptTreeModel {
+
+ private OnGetDeptTreeListener listener;
+
+ public DeptTreeModelImpl(OnGetDeptTreeListener changedListener) {
+ this.listener = changedListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnGetDeptTreeListener {
+ void onSuccess(DeptTreeBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String pid) {
+ Observable observable = RetrofitServiceManager.getDeptTreeResult(pid);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(DeptTreeBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IDeptTreeModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IDeptTreeModel.java
new file mode 100644
index 0000000..ab1947c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IDeptTreeModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IDeptTreeModel {
+ Subscription sendRetrofitRequest(String pid);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IPhoneBookModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IPhoneBookModel.java
new file mode 100644
index 0000000..9b3fa28
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IPhoneBookModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IPhoneBookModel {
+ Subscription sendRetrofitRequest(String deptid);
+}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 7befe7c..54b3625 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -12,6 +12,7 @@
+
+
groupData = new ArrayList<>();
+ private List> childData = new ArrayList<>();
+ private LayoutInflater layoutInflater;
+
+ public DeptExpandableAdapter(Context mContext) {
+ layoutInflater = LayoutInflater.from(mContext);
+ }
+
+ public void setData(@Nullable List groupList, @Nullable List> childList) {
+ groupData.clear();
+ childData.clear();
+ if (groupList != null) {
+ this.groupData = groupList;
+ if (childList != null) {
+ this.childData = childList;
+ }
+ }
+ notifyDataSetChanged();
+ }
+
+ @Override
+ public int getGroupCount() {
+ return groupData.size();
+ }
+
+ @Override
+ public int getChildrenCount(int groupPosition) {
+ return childData.get(groupPosition).size();
+ }
+
+ @Override
+ public Object getGroup(int groupPosition) {
+ return groupData.get(groupPosition);
+ }
+
+ @Override
+ public Object getChild(int groupPosition, int childPosition) {
+ return childData.get(groupPosition).get(childPosition);
+ }
+
+ @Override
+ public long getGroupId(int groupPosition) {
+ return groupPosition;
+ }
+
+ @Override
+ public long getChildId(int groupPosition, int childPosition) {
+ return childPosition;
+ }
+
+ @Override
+ public boolean hasStableIds() {
+ return false;
+ }
+
+ @Override
+ public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
+ GroupViewHolder groupHolder;
+ if (convertView == null) {
+ convertView = layoutInflater.inflate(R.layout.item_group_list, parent, false);
+ groupHolder = new GroupViewHolder();
+ groupHolder.groupNameView = convertView.findViewById(R.id.groupNameView);
+ convertView.setTag(groupHolder);
+ } else {
+ groupHolder = (GroupViewHolder) convertView.getTag();
+ }
+ groupHolder.groupNameView.setText(groupData.get(groupPosition));
+ return convertView;
+ }
+
+ @Override
+ public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
+ ChildViewHolder itemHolder;
+ if (convertView == null) {
+ convertView = layoutInflater.inflate(R.layout.item_child_list, parent, false);
+ itemHolder = new ChildViewHolder();
+ itemHolder.childNameView = convertView.findViewById(R.id.childNameView);
+ itemHolder.childPhoneView = convertView.findViewById(R.id.childPhoneView);
+ convertView.setTag(itemHolder);
+ } else {
+ itemHolder = (ChildViewHolder) convertView.getTag();
+ }
+ itemHolder.childNameView.setText(childData.get(groupPosition).get(childPosition).getPersonName());
+ itemHolder.childPhoneView.setText(childData.get(groupPosition).get(childPosition).getPersonPhone());
+ return convertView;
+ }
+
+ //设置子列表是否可选中
+ @Override
+ public boolean isChildSelectable(int groupPosition, int childPosition) {
+ return true;
+ }
+
+ private static class GroupViewHolder {
+ private TextView groupNameView;
+ }
+
+ private static class ChildViewHolder {
+ private TextView childNameView;
+ private TextView childPhoneView;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/adapter/SwipeViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/SwipeViewAdapter.java
new file mode 100644
index 0000000..aa469ff
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/adapter/SwipeViewAdapter.java
@@ -0,0 +1,96 @@
+package com.casic.dcms.adapter;
+
+import android.content.Context;
+import android.graphics.Color;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.casic.dcms.R;
+import com.casic.dcms.bean.NoticeBean;
+import com.qmuiteam.qmui.recyclerView.QMUISwipeAction;
+import com.qmuiteam.qmui.recyclerView.QMUISwipeViewHolder;
+import com.qmuiteam.qmui.util.QMUIDisplayHelper;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 9:47
+ * @email : 290677893@qq.com
+ **/
+public class SwipeViewAdapter extends RecyclerView.Adapter {
+
+ private List mData = new ArrayList<>();
+ private final QMUISwipeAction mDeleteAction;
+
+ public SwipeViewAdapter(Context context) {
+ QMUISwipeAction.ActionBuilder builder = new QMUISwipeAction.ActionBuilder()
+ .textSize(QMUIDisplayHelper.sp2px(context, 18))
+ .textColor(Color.WHITE)
+ .paddingStartEnd(QMUIDisplayHelper.dp2px(context, 18));
+ mDeleteAction = builder.text("删除").backgroundColor(Color.RED).build();
+ }
+
+ public void setData(@Nullable List list) {
+ mData.clear();
+ if (list != null) {
+ mData.addAll(list);
+ }
+ notifyDataSetChanged();
+ }
+
+ public void remove(int pos) {
+ mData.remove(pos);
+ notifyItemRemoved(pos);
+ }
+
+ @NonNull
+ @Override
+ public QMUISwipeViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_notice_list, parent, false);
+ final QMUISwipeViewHolder swipeViewHolder = new QMUISwipeViewHolder(view);
+ swipeViewHolder.addSwipeAction(mDeleteAction);
+ return swipeViewHolder;
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull QMUISwipeViewHolder holder, int position) {
+ TextView noticeTitleView = holder.itemView.findViewById(R.id.noticeTitleView);
+ TextView noticeDateView = holder.itemView.findViewById(R.id.noticeDateView);
+ TextView noticeContentView = holder.itemView.findViewById(R.id.noticeContentView);
+
+ NoticeBean noticeBean = mData.get(position);
+ noticeTitleView.setText(noticeBean.getNoticeTitle());
+ noticeDateView.setText(noticeBean.getNoticeDate());
+ noticeContentView.setText(noticeBean.getNoticeContent());
+ holder.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ clickListener.onClick(position);
+ }
+ });
+ }
+
+ @Override
+ public int getItemCount() {
+ return mData.size();
+ }
+
+ private OnItemClickListener clickListener;
+
+ public interface OnItemClickListener {
+ void onClick(int position);
+ }
+
+ public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
+ this.clickListener = onItemClickListener;
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/bean/DeptTreeBean.java b/app/src/main/java/com/casic/dcms/bean/DeptTreeBean.java
new file mode 100644
index 0000000..7f0f079
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/DeptTreeBean.java
@@ -0,0 +1,153 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 12:46
+ * @email : 290677893@qq.com
+ **/
+public class DeptTreeBean {
+
+ /**
+ * code : 200.0
+ * data : {"list":[{"checked":false,"code":"","id":"1177026995528237058","name":"指挥中心","open":false,"pcodes":"","pid":"24","value":""}]}
+ * message : 请求成功
+ * success : true
+ */
+
+ private double code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ private List list;
+
+ public List getList() {
+ return list;
+ }
+
+ public void setList(List list) {
+ this.list = list;
+ }
+
+ public static class ListBean {
+ /**
+ * checked : false
+ * code :
+ * id : 1177026995528237058
+ * name : 指挥中心
+ * open : false
+ * pcodes :
+ * pid : 24
+ * value :
+ */
+
+ private boolean checked;
+ private String code;
+ private String id;
+ private String name;
+ private boolean open;
+ private String pcodes;
+ private String pid;
+ private String value;
+
+ public boolean isChecked() {
+ return checked;
+ }
+
+ public void setChecked(boolean checked) {
+ this.checked = checked;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public boolean isOpen() {
+ return open;
+ }
+
+ public void setOpen(boolean open) {
+ this.open = open;
+ }
+
+ public String getPcodes() {
+ return pcodes;
+ }
+
+ public void setPcodes(String pcodes) {
+ this.pcodes = pcodes;
+ }
+
+ public String getPid() {
+ return pid;
+ }
+
+ public void setPid(String pid) {
+ this.pid = pid;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/NoticeBean.java b/app/src/main/java/com/casic/dcms/bean/NoticeBean.java
new file mode 100644
index 0000000..e68d12e
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/NoticeBean.java
@@ -0,0 +1,45 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 10:03
+ * @email : 290677893@qq.com
+ **/
+public class NoticeBean {
+ private String noticeTitle;
+ private String noticeDate;
+ private String noticeContent;
+ private String senderName;
+
+ public String getNoticeTitle() {
+ return noticeTitle;
+ }
+
+ public void setNoticeTitle(String noticeTitle) {
+ this.noticeTitle = noticeTitle;
+ }
+
+ public String getNoticeDate() {
+ return noticeDate;
+ }
+
+ public void setNoticeDate(String noticeDate) {
+ this.noticeDate = noticeDate;
+ }
+
+ public String getNoticeContent() {
+ return noticeContent;
+ }
+
+ public void setNoticeContent(String noticeContent) {
+ this.noticeContent = noticeContent;
+ }
+
+ public String getSenderName() {
+ return senderName;
+ }
+
+ public void setSenderName(String senderName) {
+ this.senderName = senderName;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/PersonPhoneBean.java b/app/src/main/java/com/casic/dcms/bean/PersonPhoneBean.java
new file mode 100644
index 0000000..d6443ac
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/PersonPhoneBean.java
@@ -0,0 +1,27 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 13:00
+ * @email : 290677893@qq.com
+ **/
+public class PersonPhoneBean {
+ private String personName;
+ private String personPhone;
+
+ public String getPersonName() {
+ return personName;
+ }
+
+ public void setPersonName(String personName) {
+ this.personName = personName;
+ }
+
+ public String getPersonPhone() {
+ return personPhone;
+ }
+
+ public void setPersonPhone(String personPhone) {
+ this.personPhone = personPhone;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/PhoneBookBean.java b/app/src/main/java/com/casic/dcms/bean/PhoneBookBean.java
new file mode 100644
index 0000000..9242676
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/PhoneBookBean.java
@@ -0,0 +1,131 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 11:34
+ * @email : 290677893@qq.com
+ **/
+public class PhoneBookBean {
+
+ /**
+ * code : 200.0
+ * data : [{"account":"sp_zhcg","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1206921310454312961","name":"中心视频","phone":""},{"account":"cgzbz","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177048865279356930","name":"值班长","phone":""},{"account":"pacr_dp","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1355036418525347842","name":"平安崇仁对接用户","phone":""},{"account":"cgzhz","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177049102999924737","name":"指挥长","phone":"18600202669"},{"account":"cgjd03","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1196382448976011266","name":"李斌","phone":""},{"account":"cgjd01","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177050541084160002","name":"王金龙","phone":"18600202669"},{"account":"cgsl01","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177050327115935746","name":"白雅茹","phone":""},{"account":"cgpq01","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177050762996396034","name":"艾闻","phone":""},{"account":"cgjd02","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177050541084160013","name":"苗建峰","phone":""},{"account":"cgld","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1193696400776249345","name":"领导","phone":""}]
+ * message : 请求成功
+ * success : true
+ */
+
+ private double code;
+ private String message;
+ private boolean success;
+ private List data;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public static class DataBean {
+ /**
+ * account : sp_zhcg
+ * attr1 :
+ * deptId : 1177026995528237058
+ * deptName : 指挥中心
+ * id : 1206921310454312961
+ * name : 中心视频
+ * phone :
+ */
+
+ private String account;
+ private String attr1;
+ private String deptId;
+ private String deptName;
+ private String id;
+ private String name;
+ private String phone;
+
+ public String getAccount() {
+ return account;
+ }
+
+ public void setAccount(String account) {
+ this.account = account;
+ }
+
+ public String getAttr1() {
+ return attr1;
+ }
+
+ public void setAttr1(String attr1) {
+ this.attr1 = attr1;
+ }
+
+ public String getDeptId() {
+ return deptId;
+ }
+
+ public void setDeptId(String deptId) {
+ this.deptId = deptId;
+ }
+
+ public String getDeptName() {
+ return deptName;
+ }
+
+ public void setDeptName(String deptName) {
+ this.deptName = deptName;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/DeptTreeModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/DeptTreeModelImpl.java
new file mode 100644
index 0000000..c9af913
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/DeptTreeModelImpl.java
@@ -0,0 +1,58 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.DeptTreeBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 12:35
+ * @email : 290677893@qq.com
+ **/
+public class DeptTreeModelImpl implements IDeptTreeModel {
+
+ private OnGetDeptTreeListener listener;
+
+ public DeptTreeModelImpl(OnGetDeptTreeListener changedListener) {
+ this.listener = changedListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnGetDeptTreeListener {
+ void onSuccess(DeptTreeBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String pid) {
+ Observable observable = RetrofitServiceManager.getDeptTreeResult(pid);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(DeptTreeBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IDeptTreeModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IDeptTreeModel.java
new file mode 100644
index 0000000..ab1947c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IDeptTreeModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IDeptTreeModel {
+ Subscription sendRetrofitRequest(String pid);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IPhoneBookModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IPhoneBookModel.java
new file mode 100644
index 0000000..9b3fa28
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IPhoneBookModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IPhoneBookModel {
+ Subscription sendRetrofitRequest(String deptid);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/PhoneBookModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/PhoneBookModelImpl.java
new file mode 100644
index 0000000..48247c2
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/PhoneBookModelImpl.java
@@ -0,0 +1,58 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.PhoneBookBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 11:21
+ * @email : 290677893@qq.com
+ **/
+public class PhoneBookModelImpl implements IPhoneBookModel {
+
+ private OnGetPhoneBookListener listener;
+
+ public PhoneBookModelImpl(OnGetPhoneBookListener bookListener) {
+ this.listener = bookListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnGetPhoneBookListener {
+ void onSuccess(PhoneBookBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String deptid) {
+ Observable observable = RetrofitServiceManager.getPhoneBookResult(deptid);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(PhoneBookBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 7befe7c..54b3625 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -12,6 +12,7 @@
+
+
groupData = new ArrayList<>();
+ private List> childData = new ArrayList<>();
+ private LayoutInflater layoutInflater;
+
+ public DeptExpandableAdapter(Context mContext) {
+ layoutInflater = LayoutInflater.from(mContext);
+ }
+
+ public void setData(@Nullable List groupList, @Nullable List> childList) {
+ groupData.clear();
+ childData.clear();
+ if (groupList != null) {
+ this.groupData = groupList;
+ if (childList != null) {
+ this.childData = childList;
+ }
+ }
+ notifyDataSetChanged();
+ }
+
+ @Override
+ public int getGroupCount() {
+ return groupData.size();
+ }
+
+ @Override
+ public int getChildrenCount(int groupPosition) {
+ return childData.get(groupPosition).size();
+ }
+
+ @Override
+ public Object getGroup(int groupPosition) {
+ return groupData.get(groupPosition);
+ }
+
+ @Override
+ public Object getChild(int groupPosition, int childPosition) {
+ return childData.get(groupPosition).get(childPosition);
+ }
+
+ @Override
+ public long getGroupId(int groupPosition) {
+ return groupPosition;
+ }
+
+ @Override
+ public long getChildId(int groupPosition, int childPosition) {
+ return childPosition;
+ }
+
+ @Override
+ public boolean hasStableIds() {
+ return false;
+ }
+
+ @Override
+ public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
+ GroupViewHolder groupHolder;
+ if (convertView == null) {
+ convertView = layoutInflater.inflate(R.layout.item_group_list, parent, false);
+ groupHolder = new GroupViewHolder();
+ groupHolder.groupNameView = convertView.findViewById(R.id.groupNameView);
+ convertView.setTag(groupHolder);
+ } else {
+ groupHolder = (GroupViewHolder) convertView.getTag();
+ }
+ groupHolder.groupNameView.setText(groupData.get(groupPosition));
+ return convertView;
+ }
+
+ @Override
+ public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
+ ChildViewHolder itemHolder;
+ if (convertView == null) {
+ convertView = layoutInflater.inflate(R.layout.item_child_list, parent, false);
+ itemHolder = new ChildViewHolder();
+ itemHolder.childNameView = convertView.findViewById(R.id.childNameView);
+ itemHolder.childPhoneView = convertView.findViewById(R.id.childPhoneView);
+ convertView.setTag(itemHolder);
+ } else {
+ itemHolder = (ChildViewHolder) convertView.getTag();
+ }
+ itemHolder.childNameView.setText(childData.get(groupPosition).get(childPosition).getPersonName());
+ itemHolder.childPhoneView.setText(childData.get(groupPosition).get(childPosition).getPersonPhone());
+ return convertView;
+ }
+
+ //设置子列表是否可选中
+ @Override
+ public boolean isChildSelectable(int groupPosition, int childPosition) {
+ return true;
+ }
+
+ private static class GroupViewHolder {
+ private TextView groupNameView;
+ }
+
+ private static class ChildViewHolder {
+ private TextView childNameView;
+ private TextView childPhoneView;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/adapter/SwipeViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/SwipeViewAdapter.java
new file mode 100644
index 0000000..aa469ff
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/adapter/SwipeViewAdapter.java
@@ -0,0 +1,96 @@
+package com.casic.dcms.adapter;
+
+import android.content.Context;
+import android.graphics.Color;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.casic.dcms.R;
+import com.casic.dcms.bean.NoticeBean;
+import com.qmuiteam.qmui.recyclerView.QMUISwipeAction;
+import com.qmuiteam.qmui.recyclerView.QMUISwipeViewHolder;
+import com.qmuiteam.qmui.util.QMUIDisplayHelper;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 9:47
+ * @email : 290677893@qq.com
+ **/
+public class SwipeViewAdapter extends RecyclerView.Adapter {
+
+ private List mData = new ArrayList<>();
+ private final QMUISwipeAction mDeleteAction;
+
+ public SwipeViewAdapter(Context context) {
+ QMUISwipeAction.ActionBuilder builder = new QMUISwipeAction.ActionBuilder()
+ .textSize(QMUIDisplayHelper.sp2px(context, 18))
+ .textColor(Color.WHITE)
+ .paddingStartEnd(QMUIDisplayHelper.dp2px(context, 18));
+ mDeleteAction = builder.text("删除").backgroundColor(Color.RED).build();
+ }
+
+ public void setData(@Nullable List list) {
+ mData.clear();
+ if (list != null) {
+ mData.addAll(list);
+ }
+ notifyDataSetChanged();
+ }
+
+ public void remove(int pos) {
+ mData.remove(pos);
+ notifyItemRemoved(pos);
+ }
+
+ @NonNull
+ @Override
+ public QMUISwipeViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_notice_list, parent, false);
+ final QMUISwipeViewHolder swipeViewHolder = new QMUISwipeViewHolder(view);
+ swipeViewHolder.addSwipeAction(mDeleteAction);
+ return swipeViewHolder;
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull QMUISwipeViewHolder holder, int position) {
+ TextView noticeTitleView = holder.itemView.findViewById(R.id.noticeTitleView);
+ TextView noticeDateView = holder.itemView.findViewById(R.id.noticeDateView);
+ TextView noticeContentView = holder.itemView.findViewById(R.id.noticeContentView);
+
+ NoticeBean noticeBean = mData.get(position);
+ noticeTitleView.setText(noticeBean.getNoticeTitle());
+ noticeDateView.setText(noticeBean.getNoticeDate());
+ noticeContentView.setText(noticeBean.getNoticeContent());
+ holder.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ clickListener.onClick(position);
+ }
+ });
+ }
+
+ @Override
+ public int getItemCount() {
+ return mData.size();
+ }
+
+ private OnItemClickListener clickListener;
+
+ public interface OnItemClickListener {
+ void onClick(int position);
+ }
+
+ public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
+ this.clickListener = onItemClickListener;
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/bean/DeptTreeBean.java b/app/src/main/java/com/casic/dcms/bean/DeptTreeBean.java
new file mode 100644
index 0000000..7f0f079
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/DeptTreeBean.java
@@ -0,0 +1,153 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 12:46
+ * @email : 290677893@qq.com
+ **/
+public class DeptTreeBean {
+
+ /**
+ * code : 200.0
+ * data : {"list":[{"checked":false,"code":"","id":"1177026995528237058","name":"指挥中心","open":false,"pcodes":"","pid":"24","value":""}]}
+ * message : 请求成功
+ * success : true
+ */
+
+ private double code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ private List list;
+
+ public List getList() {
+ return list;
+ }
+
+ public void setList(List list) {
+ this.list = list;
+ }
+
+ public static class ListBean {
+ /**
+ * checked : false
+ * code :
+ * id : 1177026995528237058
+ * name : 指挥中心
+ * open : false
+ * pcodes :
+ * pid : 24
+ * value :
+ */
+
+ private boolean checked;
+ private String code;
+ private String id;
+ private String name;
+ private boolean open;
+ private String pcodes;
+ private String pid;
+ private String value;
+
+ public boolean isChecked() {
+ return checked;
+ }
+
+ public void setChecked(boolean checked) {
+ this.checked = checked;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public boolean isOpen() {
+ return open;
+ }
+
+ public void setOpen(boolean open) {
+ this.open = open;
+ }
+
+ public String getPcodes() {
+ return pcodes;
+ }
+
+ public void setPcodes(String pcodes) {
+ this.pcodes = pcodes;
+ }
+
+ public String getPid() {
+ return pid;
+ }
+
+ public void setPid(String pid) {
+ this.pid = pid;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/NoticeBean.java b/app/src/main/java/com/casic/dcms/bean/NoticeBean.java
new file mode 100644
index 0000000..e68d12e
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/NoticeBean.java
@@ -0,0 +1,45 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 10:03
+ * @email : 290677893@qq.com
+ **/
+public class NoticeBean {
+ private String noticeTitle;
+ private String noticeDate;
+ private String noticeContent;
+ private String senderName;
+
+ public String getNoticeTitle() {
+ return noticeTitle;
+ }
+
+ public void setNoticeTitle(String noticeTitle) {
+ this.noticeTitle = noticeTitle;
+ }
+
+ public String getNoticeDate() {
+ return noticeDate;
+ }
+
+ public void setNoticeDate(String noticeDate) {
+ this.noticeDate = noticeDate;
+ }
+
+ public String getNoticeContent() {
+ return noticeContent;
+ }
+
+ public void setNoticeContent(String noticeContent) {
+ this.noticeContent = noticeContent;
+ }
+
+ public String getSenderName() {
+ return senderName;
+ }
+
+ public void setSenderName(String senderName) {
+ this.senderName = senderName;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/PersonPhoneBean.java b/app/src/main/java/com/casic/dcms/bean/PersonPhoneBean.java
new file mode 100644
index 0000000..d6443ac
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/PersonPhoneBean.java
@@ -0,0 +1,27 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 13:00
+ * @email : 290677893@qq.com
+ **/
+public class PersonPhoneBean {
+ private String personName;
+ private String personPhone;
+
+ public String getPersonName() {
+ return personName;
+ }
+
+ public void setPersonName(String personName) {
+ this.personName = personName;
+ }
+
+ public String getPersonPhone() {
+ return personPhone;
+ }
+
+ public void setPersonPhone(String personPhone) {
+ this.personPhone = personPhone;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/PhoneBookBean.java b/app/src/main/java/com/casic/dcms/bean/PhoneBookBean.java
new file mode 100644
index 0000000..9242676
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/PhoneBookBean.java
@@ -0,0 +1,131 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 11:34
+ * @email : 290677893@qq.com
+ **/
+public class PhoneBookBean {
+
+ /**
+ * code : 200.0
+ * data : [{"account":"sp_zhcg","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1206921310454312961","name":"中心视频","phone":""},{"account":"cgzbz","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177048865279356930","name":"值班长","phone":""},{"account":"pacr_dp","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1355036418525347842","name":"平安崇仁对接用户","phone":""},{"account":"cgzhz","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177049102999924737","name":"指挥长","phone":"18600202669"},{"account":"cgjd03","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1196382448976011266","name":"李斌","phone":""},{"account":"cgjd01","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177050541084160002","name":"王金龙","phone":"18600202669"},{"account":"cgsl01","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177050327115935746","name":"白雅茹","phone":""},{"account":"cgpq01","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177050762996396034","name":"艾闻","phone":""},{"account":"cgjd02","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177050541084160013","name":"苗建峰","phone":""},{"account":"cgld","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1193696400776249345","name":"领导","phone":""}]
+ * message : 请求成功
+ * success : true
+ */
+
+ private double code;
+ private String message;
+ private boolean success;
+ private List data;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public static class DataBean {
+ /**
+ * account : sp_zhcg
+ * attr1 :
+ * deptId : 1177026995528237058
+ * deptName : 指挥中心
+ * id : 1206921310454312961
+ * name : 中心视频
+ * phone :
+ */
+
+ private String account;
+ private String attr1;
+ private String deptId;
+ private String deptName;
+ private String id;
+ private String name;
+ private String phone;
+
+ public String getAccount() {
+ return account;
+ }
+
+ public void setAccount(String account) {
+ this.account = account;
+ }
+
+ public String getAttr1() {
+ return attr1;
+ }
+
+ public void setAttr1(String attr1) {
+ this.attr1 = attr1;
+ }
+
+ public String getDeptId() {
+ return deptId;
+ }
+
+ public void setDeptId(String deptId) {
+ this.deptId = deptId;
+ }
+
+ public String getDeptName() {
+ return deptName;
+ }
+
+ public void setDeptName(String deptName) {
+ this.deptName = deptName;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/DeptTreeModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/DeptTreeModelImpl.java
new file mode 100644
index 0000000..c9af913
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/DeptTreeModelImpl.java
@@ -0,0 +1,58 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.DeptTreeBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 12:35
+ * @email : 290677893@qq.com
+ **/
+public class DeptTreeModelImpl implements IDeptTreeModel {
+
+ private OnGetDeptTreeListener listener;
+
+ public DeptTreeModelImpl(OnGetDeptTreeListener changedListener) {
+ this.listener = changedListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnGetDeptTreeListener {
+ void onSuccess(DeptTreeBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String pid) {
+ Observable observable = RetrofitServiceManager.getDeptTreeResult(pid);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(DeptTreeBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IDeptTreeModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IDeptTreeModel.java
new file mode 100644
index 0000000..ab1947c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IDeptTreeModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IDeptTreeModel {
+ Subscription sendRetrofitRequest(String pid);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IPhoneBookModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IPhoneBookModel.java
new file mode 100644
index 0000000..9b3fa28
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IPhoneBookModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IPhoneBookModel {
+ Subscription sendRetrofitRequest(String deptid);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/PhoneBookModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/PhoneBookModelImpl.java
new file mode 100644
index 0000000..48247c2
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/PhoneBookModelImpl.java
@@ -0,0 +1,58 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.PhoneBookBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 11:21
+ * @email : 290677893@qq.com
+ **/
+public class PhoneBookModelImpl implements IPhoneBookModel {
+
+ private OnGetPhoneBookListener listener;
+
+ public PhoneBookModelImpl(OnGetPhoneBookListener bookListener) {
+ this.listener = bookListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnGetPhoneBookListener {
+ void onSuccess(PhoneBookBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String deptid) {
+ Observable observable = RetrofitServiceManager.getPhoneBookResult(deptid);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(PhoneBookBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTreePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTreePresenterImpl.java
new file mode 100644
index 0000000..e010f1a
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTreePresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.DeptTreeBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.DeptTreeModelImpl;
+import com.casic.dcms.mvp.view.IDeptTreeView;
+
+public class DeptTreePresenterImpl extends BasePresenter implements IDeptTreePresenter, DeptTreeModelImpl.OnGetDeptTreeListener {
+
+ private IDeptTreeView view;
+ private DeptTreeModelImpl actionModel;
+
+ public DeptTreePresenterImpl(IDeptTreeView deptTreeView) {
+ this.view = deptTreeView;
+ actionModel = new DeptTreeModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String pid) {
+ addSubscription(actionModel.sendRetrofitRequest(pid));
+ }
+
+ @Override
+ public void onSuccess(DeptTreeBean resultBean) {
+ view.obtainDeptTreeResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 7befe7c..54b3625 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -12,6 +12,7 @@
+
+
groupData = new ArrayList<>();
+ private List> childData = new ArrayList<>();
+ private LayoutInflater layoutInflater;
+
+ public DeptExpandableAdapter(Context mContext) {
+ layoutInflater = LayoutInflater.from(mContext);
+ }
+
+ public void setData(@Nullable List groupList, @Nullable List> childList) {
+ groupData.clear();
+ childData.clear();
+ if (groupList != null) {
+ this.groupData = groupList;
+ if (childList != null) {
+ this.childData = childList;
+ }
+ }
+ notifyDataSetChanged();
+ }
+
+ @Override
+ public int getGroupCount() {
+ return groupData.size();
+ }
+
+ @Override
+ public int getChildrenCount(int groupPosition) {
+ return childData.get(groupPosition).size();
+ }
+
+ @Override
+ public Object getGroup(int groupPosition) {
+ return groupData.get(groupPosition);
+ }
+
+ @Override
+ public Object getChild(int groupPosition, int childPosition) {
+ return childData.get(groupPosition).get(childPosition);
+ }
+
+ @Override
+ public long getGroupId(int groupPosition) {
+ return groupPosition;
+ }
+
+ @Override
+ public long getChildId(int groupPosition, int childPosition) {
+ return childPosition;
+ }
+
+ @Override
+ public boolean hasStableIds() {
+ return false;
+ }
+
+ @Override
+ public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
+ GroupViewHolder groupHolder;
+ if (convertView == null) {
+ convertView = layoutInflater.inflate(R.layout.item_group_list, parent, false);
+ groupHolder = new GroupViewHolder();
+ groupHolder.groupNameView = convertView.findViewById(R.id.groupNameView);
+ convertView.setTag(groupHolder);
+ } else {
+ groupHolder = (GroupViewHolder) convertView.getTag();
+ }
+ groupHolder.groupNameView.setText(groupData.get(groupPosition));
+ return convertView;
+ }
+
+ @Override
+ public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
+ ChildViewHolder itemHolder;
+ if (convertView == null) {
+ convertView = layoutInflater.inflate(R.layout.item_child_list, parent, false);
+ itemHolder = new ChildViewHolder();
+ itemHolder.childNameView = convertView.findViewById(R.id.childNameView);
+ itemHolder.childPhoneView = convertView.findViewById(R.id.childPhoneView);
+ convertView.setTag(itemHolder);
+ } else {
+ itemHolder = (ChildViewHolder) convertView.getTag();
+ }
+ itemHolder.childNameView.setText(childData.get(groupPosition).get(childPosition).getPersonName());
+ itemHolder.childPhoneView.setText(childData.get(groupPosition).get(childPosition).getPersonPhone());
+ return convertView;
+ }
+
+ //设置子列表是否可选中
+ @Override
+ public boolean isChildSelectable(int groupPosition, int childPosition) {
+ return true;
+ }
+
+ private static class GroupViewHolder {
+ private TextView groupNameView;
+ }
+
+ private static class ChildViewHolder {
+ private TextView childNameView;
+ private TextView childPhoneView;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/adapter/SwipeViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/SwipeViewAdapter.java
new file mode 100644
index 0000000..aa469ff
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/adapter/SwipeViewAdapter.java
@@ -0,0 +1,96 @@
+package com.casic.dcms.adapter;
+
+import android.content.Context;
+import android.graphics.Color;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.casic.dcms.R;
+import com.casic.dcms.bean.NoticeBean;
+import com.qmuiteam.qmui.recyclerView.QMUISwipeAction;
+import com.qmuiteam.qmui.recyclerView.QMUISwipeViewHolder;
+import com.qmuiteam.qmui.util.QMUIDisplayHelper;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 9:47
+ * @email : 290677893@qq.com
+ **/
+public class SwipeViewAdapter extends RecyclerView.Adapter {
+
+ private List mData = new ArrayList<>();
+ private final QMUISwipeAction mDeleteAction;
+
+ public SwipeViewAdapter(Context context) {
+ QMUISwipeAction.ActionBuilder builder = new QMUISwipeAction.ActionBuilder()
+ .textSize(QMUIDisplayHelper.sp2px(context, 18))
+ .textColor(Color.WHITE)
+ .paddingStartEnd(QMUIDisplayHelper.dp2px(context, 18));
+ mDeleteAction = builder.text("删除").backgroundColor(Color.RED).build();
+ }
+
+ public void setData(@Nullable List list) {
+ mData.clear();
+ if (list != null) {
+ mData.addAll(list);
+ }
+ notifyDataSetChanged();
+ }
+
+ public void remove(int pos) {
+ mData.remove(pos);
+ notifyItemRemoved(pos);
+ }
+
+ @NonNull
+ @Override
+ public QMUISwipeViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_notice_list, parent, false);
+ final QMUISwipeViewHolder swipeViewHolder = new QMUISwipeViewHolder(view);
+ swipeViewHolder.addSwipeAction(mDeleteAction);
+ return swipeViewHolder;
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull QMUISwipeViewHolder holder, int position) {
+ TextView noticeTitleView = holder.itemView.findViewById(R.id.noticeTitleView);
+ TextView noticeDateView = holder.itemView.findViewById(R.id.noticeDateView);
+ TextView noticeContentView = holder.itemView.findViewById(R.id.noticeContentView);
+
+ NoticeBean noticeBean = mData.get(position);
+ noticeTitleView.setText(noticeBean.getNoticeTitle());
+ noticeDateView.setText(noticeBean.getNoticeDate());
+ noticeContentView.setText(noticeBean.getNoticeContent());
+ holder.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ clickListener.onClick(position);
+ }
+ });
+ }
+
+ @Override
+ public int getItemCount() {
+ return mData.size();
+ }
+
+ private OnItemClickListener clickListener;
+
+ public interface OnItemClickListener {
+ void onClick(int position);
+ }
+
+ public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
+ this.clickListener = onItemClickListener;
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/bean/DeptTreeBean.java b/app/src/main/java/com/casic/dcms/bean/DeptTreeBean.java
new file mode 100644
index 0000000..7f0f079
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/DeptTreeBean.java
@@ -0,0 +1,153 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 12:46
+ * @email : 290677893@qq.com
+ **/
+public class DeptTreeBean {
+
+ /**
+ * code : 200.0
+ * data : {"list":[{"checked":false,"code":"","id":"1177026995528237058","name":"指挥中心","open":false,"pcodes":"","pid":"24","value":""}]}
+ * message : 请求成功
+ * success : true
+ */
+
+ private double code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ private List list;
+
+ public List getList() {
+ return list;
+ }
+
+ public void setList(List list) {
+ this.list = list;
+ }
+
+ public static class ListBean {
+ /**
+ * checked : false
+ * code :
+ * id : 1177026995528237058
+ * name : 指挥中心
+ * open : false
+ * pcodes :
+ * pid : 24
+ * value :
+ */
+
+ private boolean checked;
+ private String code;
+ private String id;
+ private String name;
+ private boolean open;
+ private String pcodes;
+ private String pid;
+ private String value;
+
+ public boolean isChecked() {
+ return checked;
+ }
+
+ public void setChecked(boolean checked) {
+ this.checked = checked;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public boolean isOpen() {
+ return open;
+ }
+
+ public void setOpen(boolean open) {
+ this.open = open;
+ }
+
+ public String getPcodes() {
+ return pcodes;
+ }
+
+ public void setPcodes(String pcodes) {
+ this.pcodes = pcodes;
+ }
+
+ public String getPid() {
+ return pid;
+ }
+
+ public void setPid(String pid) {
+ this.pid = pid;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/NoticeBean.java b/app/src/main/java/com/casic/dcms/bean/NoticeBean.java
new file mode 100644
index 0000000..e68d12e
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/NoticeBean.java
@@ -0,0 +1,45 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 10:03
+ * @email : 290677893@qq.com
+ **/
+public class NoticeBean {
+ private String noticeTitle;
+ private String noticeDate;
+ private String noticeContent;
+ private String senderName;
+
+ public String getNoticeTitle() {
+ return noticeTitle;
+ }
+
+ public void setNoticeTitle(String noticeTitle) {
+ this.noticeTitle = noticeTitle;
+ }
+
+ public String getNoticeDate() {
+ return noticeDate;
+ }
+
+ public void setNoticeDate(String noticeDate) {
+ this.noticeDate = noticeDate;
+ }
+
+ public String getNoticeContent() {
+ return noticeContent;
+ }
+
+ public void setNoticeContent(String noticeContent) {
+ this.noticeContent = noticeContent;
+ }
+
+ public String getSenderName() {
+ return senderName;
+ }
+
+ public void setSenderName(String senderName) {
+ this.senderName = senderName;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/PersonPhoneBean.java b/app/src/main/java/com/casic/dcms/bean/PersonPhoneBean.java
new file mode 100644
index 0000000..d6443ac
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/PersonPhoneBean.java
@@ -0,0 +1,27 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 13:00
+ * @email : 290677893@qq.com
+ **/
+public class PersonPhoneBean {
+ private String personName;
+ private String personPhone;
+
+ public String getPersonName() {
+ return personName;
+ }
+
+ public void setPersonName(String personName) {
+ this.personName = personName;
+ }
+
+ public String getPersonPhone() {
+ return personPhone;
+ }
+
+ public void setPersonPhone(String personPhone) {
+ this.personPhone = personPhone;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/PhoneBookBean.java b/app/src/main/java/com/casic/dcms/bean/PhoneBookBean.java
new file mode 100644
index 0000000..9242676
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/PhoneBookBean.java
@@ -0,0 +1,131 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 11:34
+ * @email : 290677893@qq.com
+ **/
+public class PhoneBookBean {
+
+ /**
+ * code : 200.0
+ * data : [{"account":"sp_zhcg","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1206921310454312961","name":"中心视频","phone":""},{"account":"cgzbz","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177048865279356930","name":"值班长","phone":""},{"account":"pacr_dp","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1355036418525347842","name":"平安崇仁对接用户","phone":""},{"account":"cgzhz","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177049102999924737","name":"指挥长","phone":"18600202669"},{"account":"cgjd03","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1196382448976011266","name":"李斌","phone":""},{"account":"cgjd01","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177050541084160002","name":"王金龙","phone":"18600202669"},{"account":"cgsl01","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177050327115935746","name":"白雅茹","phone":""},{"account":"cgpq01","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177050762996396034","name":"艾闻","phone":""},{"account":"cgjd02","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177050541084160013","name":"苗建峰","phone":""},{"account":"cgld","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1193696400776249345","name":"领导","phone":""}]
+ * message : 请求成功
+ * success : true
+ */
+
+ private double code;
+ private String message;
+ private boolean success;
+ private List data;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public static class DataBean {
+ /**
+ * account : sp_zhcg
+ * attr1 :
+ * deptId : 1177026995528237058
+ * deptName : 指挥中心
+ * id : 1206921310454312961
+ * name : 中心视频
+ * phone :
+ */
+
+ private String account;
+ private String attr1;
+ private String deptId;
+ private String deptName;
+ private String id;
+ private String name;
+ private String phone;
+
+ public String getAccount() {
+ return account;
+ }
+
+ public void setAccount(String account) {
+ this.account = account;
+ }
+
+ public String getAttr1() {
+ return attr1;
+ }
+
+ public void setAttr1(String attr1) {
+ this.attr1 = attr1;
+ }
+
+ public String getDeptId() {
+ return deptId;
+ }
+
+ public void setDeptId(String deptId) {
+ this.deptId = deptId;
+ }
+
+ public String getDeptName() {
+ return deptName;
+ }
+
+ public void setDeptName(String deptName) {
+ this.deptName = deptName;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/DeptTreeModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/DeptTreeModelImpl.java
new file mode 100644
index 0000000..c9af913
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/DeptTreeModelImpl.java
@@ -0,0 +1,58 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.DeptTreeBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 12:35
+ * @email : 290677893@qq.com
+ **/
+public class DeptTreeModelImpl implements IDeptTreeModel {
+
+ private OnGetDeptTreeListener listener;
+
+ public DeptTreeModelImpl(OnGetDeptTreeListener changedListener) {
+ this.listener = changedListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnGetDeptTreeListener {
+ void onSuccess(DeptTreeBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String pid) {
+ Observable observable = RetrofitServiceManager.getDeptTreeResult(pid);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(DeptTreeBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IDeptTreeModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IDeptTreeModel.java
new file mode 100644
index 0000000..ab1947c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IDeptTreeModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IDeptTreeModel {
+ Subscription sendRetrofitRequest(String pid);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IPhoneBookModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IPhoneBookModel.java
new file mode 100644
index 0000000..9b3fa28
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IPhoneBookModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IPhoneBookModel {
+ Subscription sendRetrofitRequest(String deptid);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/PhoneBookModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/PhoneBookModelImpl.java
new file mode 100644
index 0000000..48247c2
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/PhoneBookModelImpl.java
@@ -0,0 +1,58 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.PhoneBookBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 11:21
+ * @email : 290677893@qq.com
+ **/
+public class PhoneBookModelImpl implements IPhoneBookModel {
+
+ private OnGetPhoneBookListener listener;
+
+ public PhoneBookModelImpl(OnGetPhoneBookListener bookListener) {
+ this.listener = bookListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnGetPhoneBookListener {
+ void onSuccess(PhoneBookBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String deptid) {
+ Observable observable = RetrofitServiceManager.getPhoneBookResult(deptid);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(PhoneBookBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTreePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTreePresenterImpl.java
new file mode 100644
index 0000000..e010f1a
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTreePresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.DeptTreeBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.DeptTreeModelImpl;
+import com.casic.dcms.mvp.view.IDeptTreeView;
+
+public class DeptTreePresenterImpl extends BasePresenter implements IDeptTreePresenter, DeptTreeModelImpl.OnGetDeptTreeListener {
+
+ private IDeptTreeView view;
+ private DeptTreeModelImpl actionModel;
+
+ public DeptTreePresenterImpl(IDeptTreeView deptTreeView) {
+ this.view = deptTreeView;
+ actionModel = new DeptTreeModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String pid) {
+ addSubscription(actionModel.sendRetrofitRequest(pid));
+ }
+
+ @Override
+ public void onSuccess(DeptTreeBean resultBean) {
+ view.obtainDeptTreeResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IDeptTreePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IDeptTreePresenter.java
new file mode 100644
index 0000000..81e5e65
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IDeptTreePresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IDeptTreePresenter {
+ void onReadyRetrofitRequest(String pid);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 7befe7c..54b3625 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -12,6 +12,7 @@
+
+
groupData = new ArrayList<>();
+ private List> childData = new ArrayList<>();
+ private LayoutInflater layoutInflater;
+
+ public DeptExpandableAdapter(Context mContext) {
+ layoutInflater = LayoutInflater.from(mContext);
+ }
+
+ public void setData(@Nullable List groupList, @Nullable List> childList) {
+ groupData.clear();
+ childData.clear();
+ if (groupList != null) {
+ this.groupData = groupList;
+ if (childList != null) {
+ this.childData = childList;
+ }
+ }
+ notifyDataSetChanged();
+ }
+
+ @Override
+ public int getGroupCount() {
+ return groupData.size();
+ }
+
+ @Override
+ public int getChildrenCount(int groupPosition) {
+ return childData.get(groupPosition).size();
+ }
+
+ @Override
+ public Object getGroup(int groupPosition) {
+ return groupData.get(groupPosition);
+ }
+
+ @Override
+ public Object getChild(int groupPosition, int childPosition) {
+ return childData.get(groupPosition).get(childPosition);
+ }
+
+ @Override
+ public long getGroupId(int groupPosition) {
+ return groupPosition;
+ }
+
+ @Override
+ public long getChildId(int groupPosition, int childPosition) {
+ return childPosition;
+ }
+
+ @Override
+ public boolean hasStableIds() {
+ return false;
+ }
+
+ @Override
+ public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
+ GroupViewHolder groupHolder;
+ if (convertView == null) {
+ convertView = layoutInflater.inflate(R.layout.item_group_list, parent, false);
+ groupHolder = new GroupViewHolder();
+ groupHolder.groupNameView = convertView.findViewById(R.id.groupNameView);
+ convertView.setTag(groupHolder);
+ } else {
+ groupHolder = (GroupViewHolder) convertView.getTag();
+ }
+ groupHolder.groupNameView.setText(groupData.get(groupPosition));
+ return convertView;
+ }
+
+ @Override
+ public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
+ ChildViewHolder itemHolder;
+ if (convertView == null) {
+ convertView = layoutInflater.inflate(R.layout.item_child_list, parent, false);
+ itemHolder = new ChildViewHolder();
+ itemHolder.childNameView = convertView.findViewById(R.id.childNameView);
+ itemHolder.childPhoneView = convertView.findViewById(R.id.childPhoneView);
+ convertView.setTag(itemHolder);
+ } else {
+ itemHolder = (ChildViewHolder) convertView.getTag();
+ }
+ itemHolder.childNameView.setText(childData.get(groupPosition).get(childPosition).getPersonName());
+ itemHolder.childPhoneView.setText(childData.get(groupPosition).get(childPosition).getPersonPhone());
+ return convertView;
+ }
+
+ //设置子列表是否可选中
+ @Override
+ public boolean isChildSelectable(int groupPosition, int childPosition) {
+ return true;
+ }
+
+ private static class GroupViewHolder {
+ private TextView groupNameView;
+ }
+
+ private static class ChildViewHolder {
+ private TextView childNameView;
+ private TextView childPhoneView;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/adapter/SwipeViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/SwipeViewAdapter.java
new file mode 100644
index 0000000..aa469ff
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/adapter/SwipeViewAdapter.java
@@ -0,0 +1,96 @@
+package com.casic.dcms.adapter;
+
+import android.content.Context;
+import android.graphics.Color;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.casic.dcms.R;
+import com.casic.dcms.bean.NoticeBean;
+import com.qmuiteam.qmui.recyclerView.QMUISwipeAction;
+import com.qmuiteam.qmui.recyclerView.QMUISwipeViewHolder;
+import com.qmuiteam.qmui.util.QMUIDisplayHelper;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 9:47
+ * @email : 290677893@qq.com
+ **/
+public class SwipeViewAdapter extends RecyclerView.Adapter {
+
+ private List mData = new ArrayList<>();
+ private final QMUISwipeAction mDeleteAction;
+
+ public SwipeViewAdapter(Context context) {
+ QMUISwipeAction.ActionBuilder builder = new QMUISwipeAction.ActionBuilder()
+ .textSize(QMUIDisplayHelper.sp2px(context, 18))
+ .textColor(Color.WHITE)
+ .paddingStartEnd(QMUIDisplayHelper.dp2px(context, 18));
+ mDeleteAction = builder.text("删除").backgroundColor(Color.RED).build();
+ }
+
+ public void setData(@Nullable List list) {
+ mData.clear();
+ if (list != null) {
+ mData.addAll(list);
+ }
+ notifyDataSetChanged();
+ }
+
+ public void remove(int pos) {
+ mData.remove(pos);
+ notifyItemRemoved(pos);
+ }
+
+ @NonNull
+ @Override
+ public QMUISwipeViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_notice_list, parent, false);
+ final QMUISwipeViewHolder swipeViewHolder = new QMUISwipeViewHolder(view);
+ swipeViewHolder.addSwipeAction(mDeleteAction);
+ return swipeViewHolder;
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull QMUISwipeViewHolder holder, int position) {
+ TextView noticeTitleView = holder.itemView.findViewById(R.id.noticeTitleView);
+ TextView noticeDateView = holder.itemView.findViewById(R.id.noticeDateView);
+ TextView noticeContentView = holder.itemView.findViewById(R.id.noticeContentView);
+
+ NoticeBean noticeBean = mData.get(position);
+ noticeTitleView.setText(noticeBean.getNoticeTitle());
+ noticeDateView.setText(noticeBean.getNoticeDate());
+ noticeContentView.setText(noticeBean.getNoticeContent());
+ holder.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ clickListener.onClick(position);
+ }
+ });
+ }
+
+ @Override
+ public int getItemCount() {
+ return mData.size();
+ }
+
+ private OnItemClickListener clickListener;
+
+ public interface OnItemClickListener {
+ void onClick(int position);
+ }
+
+ public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
+ this.clickListener = onItemClickListener;
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/bean/DeptTreeBean.java b/app/src/main/java/com/casic/dcms/bean/DeptTreeBean.java
new file mode 100644
index 0000000..7f0f079
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/DeptTreeBean.java
@@ -0,0 +1,153 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 12:46
+ * @email : 290677893@qq.com
+ **/
+public class DeptTreeBean {
+
+ /**
+ * code : 200.0
+ * data : {"list":[{"checked":false,"code":"","id":"1177026995528237058","name":"指挥中心","open":false,"pcodes":"","pid":"24","value":""}]}
+ * message : 请求成功
+ * success : true
+ */
+
+ private double code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ private List list;
+
+ public List getList() {
+ return list;
+ }
+
+ public void setList(List list) {
+ this.list = list;
+ }
+
+ public static class ListBean {
+ /**
+ * checked : false
+ * code :
+ * id : 1177026995528237058
+ * name : 指挥中心
+ * open : false
+ * pcodes :
+ * pid : 24
+ * value :
+ */
+
+ private boolean checked;
+ private String code;
+ private String id;
+ private String name;
+ private boolean open;
+ private String pcodes;
+ private String pid;
+ private String value;
+
+ public boolean isChecked() {
+ return checked;
+ }
+
+ public void setChecked(boolean checked) {
+ this.checked = checked;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public boolean isOpen() {
+ return open;
+ }
+
+ public void setOpen(boolean open) {
+ this.open = open;
+ }
+
+ public String getPcodes() {
+ return pcodes;
+ }
+
+ public void setPcodes(String pcodes) {
+ this.pcodes = pcodes;
+ }
+
+ public String getPid() {
+ return pid;
+ }
+
+ public void setPid(String pid) {
+ this.pid = pid;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/NoticeBean.java b/app/src/main/java/com/casic/dcms/bean/NoticeBean.java
new file mode 100644
index 0000000..e68d12e
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/NoticeBean.java
@@ -0,0 +1,45 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 10:03
+ * @email : 290677893@qq.com
+ **/
+public class NoticeBean {
+ private String noticeTitle;
+ private String noticeDate;
+ private String noticeContent;
+ private String senderName;
+
+ public String getNoticeTitle() {
+ return noticeTitle;
+ }
+
+ public void setNoticeTitle(String noticeTitle) {
+ this.noticeTitle = noticeTitle;
+ }
+
+ public String getNoticeDate() {
+ return noticeDate;
+ }
+
+ public void setNoticeDate(String noticeDate) {
+ this.noticeDate = noticeDate;
+ }
+
+ public String getNoticeContent() {
+ return noticeContent;
+ }
+
+ public void setNoticeContent(String noticeContent) {
+ this.noticeContent = noticeContent;
+ }
+
+ public String getSenderName() {
+ return senderName;
+ }
+
+ public void setSenderName(String senderName) {
+ this.senderName = senderName;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/PersonPhoneBean.java b/app/src/main/java/com/casic/dcms/bean/PersonPhoneBean.java
new file mode 100644
index 0000000..d6443ac
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/PersonPhoneBean.java
@@ -0,0 +1,27 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 13:00
+ * @email : 290677893@qq.com
+ **/
+public class PersonPhoneBean {
+ private String personName;
+ private String personPhone;
+
+ public String getPersonName() {
+ return personName;
+ }
+
+ public void setPersonName(String personName) {
+ this.personName = personName;
+ }
+
+ public String getPersonPhone() {
+ return personPhone;
+ }
+
+ public void setPersonPhone(String personPhone) {
+ this.personPhone = personPhone;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/PhoneBookBean.java b/app/src/main/java/com/casic/dcms/bean/PhoneBookBean.java
new file mode 100644
index 0000000..9242676
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/PhoneBookBean.java
@@ -0,0 +1,131 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 11:34
+ * @email : 290677893@qq.com
+ **/
+public class PhoneBookBean {
+
+ /**
+ * code : 200.0
+ * data : [{"account":"sp_zhcg","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1206921310454312961","name":"中心视频","phone":""},{"account":"cgzbz","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177048865279356930","name":"值班长","phone":""},{"account":"pacr_dp","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1355036418525347842","name":"平安崇仁对接用户","phone":""},{"account":"cgzhz","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177049102999924737","name":"指挥长","phone":"18600202669"},{"account":"cgjd03","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1196382448976011266","name":"李斌","phone":""},{"account":"cgjd01","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177050541084160002","name":"王金龙","phone":"18600202669"},{"account":"cgsl01","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177050327115935746","name":"白雅茹","phone":""},{"account":"cgpq01","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177050762996396034","name":"艾闻","phone":""},{"account":"cgjd02","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177050541084160013","name":"苗建峰","phone":""},{"account":"cgld","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1193696400776249345","name":"领导","phone":""}]
+ * message : 请求成功
+ * success : true
+ */
+
+ private double code;
+ private String message;
+ private boolean success;
+ private List data;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public static class DataBean {
+ /**
+ * account : sp_zhcg
+ * attr1 :
+ * deptId : 1177026995528237058
+ * deptName : 指挥中心
+ * id : 1206921310454312961
+ * name : 中心视频
+ * phone :
+ */
+
+ private String account;
+ private String attr1;
+ private String deptId;
+ private String deptName;
+ private String id;
+ private String name;
+ private String phone;
+
+ public String getAccount() {
+ return account;
+ }
+
+ public void setAccount(String account) {
+ this.account = account;
+ }
+
+ public String getAttr1() {
+ return attr1;
+ }
+
+ public void setAttr1(String attr1) {
+ this.attr1 = attr1;
+ }
+
+ public String getDeptId() {
+ return deptId;
+ }
+
+ public void setDeptId(String deptId) {
+ this.deptId = deptId;
+ }
+
+ public String getDeptName() {
+ return deptName;
+ }
+
+ public void setDeptName(String deptName) {
+ this.deptName = deptName;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/DeptTreeModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/DeptTreeModelImpl.java
new file mode 100644
index 0000000..c9af913
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/DeptTreeModelImpl.java
@@ -0,0 +1,58 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.DeptTreeBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 12:35
+ * @email : 290677893@qq.com
+ **/
+public class DeptTreeModelImpl implements IDeptTreeModel {
+
+ private OnGetDeptTreeListener listener;
+
+ public DeptTreeModelImpl(OnGetDeptTreeListener changedListener) {
+ this.listener = changedListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnGetDeptTreeListener {
+ void onSuccess(DeptTreeBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String pid) {
+ Observable observable = RetrofitServiceManager.getDeptTreeResult(pid);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(DeptTreeBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IDeptTreeModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IDeptTreeModel.java
new file mode 100644
index 0000000..ab1947c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IDeptTreeModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IDeptTreeModel {
+ Subscription sendRetrofitRequest(String pid);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IPhoneBookModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IPhoneBookModel.java
new file mode 100644
index 0000000..9b3fa28
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IPhoneBookModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IPhoneBookModel {
+ Subscription sendRetrofitRequest(String deptid);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/PhoneBookModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/PhoneBookModelImpl.java
new file mode 100644
index 0000000..48247c2
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/PhoneBookModelImpl.java
@@ -0,0 +1,58 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.PhoneBookBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 11:21
+ * @email : 290677893@qq.com
+ **/
+public class PhoneBookModelImpl implements IPhoneBookModel {
+
+ private OnGetPhoneBookListener listener;
+
+ public PhoneBookModelImpl(OnGetPhoneBookListener bookListener) {
+ this.listener = bookListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnGetPhoneBookListener {
+ void onSuccess(PhoneBookBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String deptid) {
+ Observable observable = RetrofitServiceManager.getPhoneBookResult(deptid);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(PhoneBookBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTreePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTreePresenterImpl.java
new file mode 100644
index 0000000..e010f1a
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTreePresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.DeptTreeBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.DeptTreeModelImpl;
+import com.casic.dcms.mvp.view.IDeptTreeView;
+
+public class DeptTreePresenterImpl extends BasePresenter implements IDeptTreePresenter, DeptTreeModelImpl.OnGetDeptTreeListener {
+
+ private IDeptTreeView view;
+ private DeptTreeModelImpl actionModel;
+
+ public DeptTreePresenterImpl(IDeptTreeView deptTreeView) {
+ this.view = deptTreeView;
+ actionModel = new DeptTreeModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String pid) {
+ addSubscription(actionModel.sendRetrofitRequest(pid));
+ }
+
+ @Override
+ public void onSuccess(DeptTreeBean resultBean) {
+ view.obtainDeptTreeResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IDeptTreePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IDeptTreePresenter.java
new file mode 100644
index 0000000..81e5e65
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IDeptTreePresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IDeptTreePresenter {
+ void onReadyRetrofitRequest(String pid);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IPhoneBookPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IPhoneBookPresenter.java
new file mode 100644
index 0000000..bb5fa97
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IPhoneBookPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IPhoneBookPresenter {
+ void onReadyRetrofitRequest(String deptid);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 7befe7c..54b3625 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -12,6 +12,7 @@
+
+
groupData = new ArrayList<>();
+ private List> childData = new ArrayList<>();
+ private LayoutInflater layoutInflater;
+
+ public DeptExpandableAdapter(Context mContext) {
+ layoutInflater = LayoutInflater.from(mContext);
+ }
+
+ public void setData(@Nullable List groupList, @Nullable List> childList) {
+ groupData.clear();
+ childData.clear();
+ if (groupList != null) {
+ this.groupData = groupList;
+ if (childList != null) {
+ this.childData = childList;
+ }
+ }
+ notifyDataSetChanged();
+ }
+
+ @Override
+ public int getGroupCount() {
+ return groupData.size();
+ }
+
+ @Override
+ public int getChildrenCount(int groupPosition) {
+ return childData.get(groupPosition).size();
+ }
+
+ @Override
+ public Object getGroup(int groupPosition) {
+ return groupData.get(groupPosition);
+ }
+
+ @Override
+ public Object getChild(int groupPosition, int childPosition) {
+ return childData.get(groupPosition).get(childPosition);
+ }
+
+ @Override
+ public long getGroupId(int groupPosition) {
+ return groupPosition;
+ }
+
+ @Override
+ public long getChildId(int groupPosition, int childPosition) {
+ return childPosition;
+ }
+
+ @Override
+ public boolean hasStableIds() {
+ return false;
+ }
+
+ @Override
+ public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
+ GroupViewHolder groupHolder;
+ if (convertView == null) {
+ convertView = layoutInflater.inflate(R.layout.item_group_list, parent, false);
+ groupHolder = new GroupViewHolder();
+ groupHolder.groupNameView = convertView.findViewById(R.id.groupNameView);
+ convertView.setTag(groupHolder);
+ } else {
+ groupHolder = (GroupViewHolder) convertView.getTag();
+ }
+ groupHolder.groupNameView.setText(groupData.get(groupPosition));
+ return convertView;
+ }
+
+ @Override
+ public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
+ ChildViewHolder itemHolder;
+ if (convertView == null) {
+ convertView = layoutInflater.inflate(R.layout.item_child_list, parent, false);
+ itemHolder = new ChildViewHolder();
+ itemHolder.childNameView = convertView.findViewById(R.id.childNameView);
+ itemHolder.childPhoneView = convertView.findViewById(R.id.childPhoneView);
+ convertView.setTag(itemHolder);
+ } else {
+ itemHolder = (ChildViewHolder) convertView.getTag();
+ }
+ itemHolder.childNameView.setText(childData.get(groupPosition).get(childPosition).getPersonName());
+ itemHolder.childPhoneView.setText(childData.get(groupPosition).get(childPosition).getPersonPhone());
+ return convertView;
+ }
+
+ //设置子列表是否可选中
+ @Override
+ public boolean isChildSelectable(int groupPosition, int childPosition) {
+ return true;
+ }
+
+ private static class GroupViewHolder {
+ private TextView groupNameView;
+ }
+
+ private static class ChildViewHolder {
+ private TextView childNameView;
+ private TextView childPhoneView;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/adapter/SwipeViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/SwipeViewAdapter.java
new file mode 100644
index 0000000..aa469ff
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/adapter/SwipeViewAdapter.java
@@ -0,0 +1,96 @@
+package com.casic.dcms.adapter;
+
+import android.content.Context;
+import android.graphics.Color;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.casic.dcms.R;
+import com.casic.dcms.bean.NoticeBean;
+import com.qmuiteam.qmui.recyclerView.QMUISwipeAction;
+import com.qmuiteam.qmui.recyclerView.QMUISwipeViewHolder;
+import com.qmuiteam.qmui.util.QMUIDisplayHelper;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 9:47
+ * @email : 290677893@qq.com
+ **/
+public class SwipeViewAdapter extends RecyclerView.Adapter {
+
+ private List mData = new ArrayList<>();
+ private final QMUISwipeAction mDeleteAction;
+
+ public SwipeViewAdapter(Context context) {
+ QMUISwipeAction.ActionBuilder builder = new QMUISwipeAction.ActionBuilder()
+ .textSize(QMUIDisplayHelper.sp2px(context, 18))
+ .textColor(Color.WHITE)
+ .paddingStartEnd(QMUIDisplayHelper.dp2px(context, 18));
+ mDeleteAction = builder.text("删除").backgroundColor(Color.RED).build();
+ }
+
+ public void setData(@Nullable List list) {
+ mData.clear();
+ if (list != null) {
+ mData.addAll(list);
+ }
+ notifyDataSetChanged();
+ }
+
+ public void remove(int pos) {
+ mData.remove(pos);
+ notifyItemRemoved(pos);
+ }
+
+ @NonNull
+ @Override
+ public QMUISwipeViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_notice_list, parent, false);
+ final QMUISwipeViewHolder swipeViewHolder = new QMUISwipeViewHolder(view);
+ swipeViewHolder.addSwipeAction(mDeleteAction);
+ return swipeViewHolder;
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull QMUISwipeViewHolder holder, int position) {
+ TextView noticeTitleView = holder.itemView.findViewById(R.id.noticeTitleView);
+ TextView noticeDateView = holder.itemView.findViewById(R.id.noticeDateView);
+ TextView noticeContentView = holder.itemView.findViewById(R.id.noticeContentView);
+
+ NoticeBean noticeBean = mData.get(position);
+ noticeTitleView.setText(noticeBean.getNoticeTitle());
+ noticeDateView.setText(noticeBean.getNoticeDate());
+ noticeContentView.setText(noticeBean.getNoticeContent());
+ holder.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ clickListener.onClick(position);
+ }
+ });
+ }
+
+ @Override
+ public int getItemCount() {
+ return mData.size();
+ }
+
+ private OnItemClickListener clickListener;
+
+ public interface OnItemClickListener {
+ void onClick(int position);
+ }
+
+ public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
+ this.clickListener = onItemClickListener;
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/bean/DeptTreeBean.java b/app/src/main/java/com/casic/dcms/bean/DeptTreeBean.java
new file mode 100644
index 0000000..7f0f079
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/DeptTreeBean.java
@@ -0,0 +1,153 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 12:46
+ * @email : 290677893@qq.com
+ **/
+public class DeptTreeBean {
+
+ /**
+ * code : 200.0
+ * data : {"list":[{"checked":false,"code":"","id":"1177026995528237058","name":"指挥中心","open":false,"pcodes":"","pid":"24","value":""}]}
+ * message : 请求成功
+ * success : true
+ */
+
+ private double code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ private List list;
+
+ public List getList() {
+ return list;
+ }
+
+ public void setList(List list) {
+ this.list = list;
+ }
+
+ public static class ListBean {
+ /**
+ * checked : false
+ * code :
+ * id : 1177026995528237058
+ * name : 指挥中心
+ * open : false
+ * pcodes :
+ * pid : 24
+ * value :
+ */
+
+ private boolean checked;
+ private String code;
+ private String id;
+ private String name;
+ private boolean open;
+ private String pcodes;
+ private String pid;
+ private String value;
+
+ public boolean isChecked() {
+ return checked;
+ }
+
+ public void setChecked(boolean checked) {
+ this.checked = checked;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public boolean isOpen() {
+ return open;
+ }
+
+ public void setOpen(boolean open) {
+ this.open = open;
+ }
+
+ public String getPcodes() {
+ return pcodes;
+ }
+
+ public void setPcodes(String pcodes) {
+ this.pcodes = pcodes;
+ }
+
+ public String getPid() {
+ return pid;
+ }
+
+ public void setPid(String pid) {
+ this.pid = pid;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/NoticeBean.java b/app/src/main/java/com/casic/dcms/bean/NoticeBean.java
new file mode 100644
index 0000000..e68d12e
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/NoticeBean.java
@@ -0,0 +1,45 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 10:03
+ * @email : 290677893@qq.com
+ **/
+public class NoticeBean {
+ private String noticeTitle;
+ private String noticeDate;
+ private String noticeContent;
+ private String senderName;
+
+ public String getNoticeTitle() {
+ return noticeTitle;
+ }
+
+ public void setNoticeTitle(String noticeTitle) {
+ this.noticeTitle = noticeTitle;
+ }
+
+ public String getNoticeDate() {
+ return noticeDate;
+ }
+
+ public void setNoticeDate(String noticeDate) {
+ this.noticeDate = noticeDate;
+ }
+
+ public String getNoticeContent() {
+ return noticeContent;
+ }
+
+ public void setNoticeContent(String noticeContent) {
+ this.noticeContent = noticeContent;
+ }
+
+ public String getSenderName() {
+ return senderName;
+ }
+
+ public void setSenderName(String senderName) {
+ this.senderName = senderName;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/PersonPhoneBean.java b/app/src/main/java/com/casic/dcms/bean/PersonPhoneBean.java
new file mode 100644
index 0000000..d6443ac
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/PersonPhoneBean.java
@@ -0,0 +1,27 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 13:00
+ * @email : 290677893@qq.com
+ **/
+public class PersonPhoneBean {
+ private String personName;
+ private String personPhone;
+
+ public String getPersonName() {
+ return personName;
+ }
+
+ public void setPersonName(String personName) {
+ this.personName = personName;
+ }
+
+ public String getPersonPhone() {
+ return personPhone;
+ }
+
+ public void setPersonPhone(String personPhone) {
+ this.personPhone = personPhone;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/PhoneBookBean.java b/app/src/main/java/com/casic/dcms/bean/PhoneBookBean.java
new file mode 100644
index 0000000..9242676
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/PhoneBookBean.java
@@ -0,0 +1,131 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 11:34
+ * @email : 290677893@qq.com
+ **/
+public class PhoneBookBean {
+
+ /**
+ * code : 200.0
+ * data : [{"account":"sp_zhcg","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1206921310454312961","name":"中心视频","phone":""},{"account":"cgzbz","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177048865279356930","name":"值班长","phone":""},{"account":"pacr_dp","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1355036418525347842","name":"平安崇仁对接用户","phone":""},{"account":"cgzhz","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177049102999924737","name":"指挥长","phone":"18600202669"},{"account":"cgjd03","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1196382448976011266","name":"李斌","phone":""},{"account":"cgjd01","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177050541084160002","name":"王金龙","phone":"18600202669"},{"account":"cgsl01","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177050327115935746","name":"白雅茹","phone":""},{"account":"cgpq01","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177050762996396034","name":"艾闻","phone":""},{"account":"cgjd02","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177050541084160013","name":"苗建峰","phone":""},{"account":"cgld","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1193696400776249345","name":"领导","phone":""}]
+ * message : 请求成功
+ * success : true
+ */
+
+ private double code;
+ private String message;
+ private boolean success;
+ private List data;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public static class DataBean {
+ /**
+ * account : sp_zhcg
+ * attr1 :
+ * deptId : 1177026995528237058
+ * deptName : 指挥中心
+ * id : 1206921310454312961
+ * name : 中心视频
+ * phone :
+ */
+
+ private String account;
+ private String attr1;
+ private String deptId;
+ private String deptName;
+ private String id;
+ private String name;
+ private String phone;
+
+ public String getAccount() {
+ return account;
+ }
+
+ public void setAccount(String account) {
+ this.account = account;
+ }
+
+ public String getAttr1() {
+ return attr1;
+ }
+
+ public void setAttr1(String attr1) {
+ this.attr1 = attr1;
+ }
+
+ public String getDeptId() {
+ return deptId;
+ }
+
+ public void setDeptId(String deptId) {
+ this.deptId = deptId;
+ }
+
+ public String getDeptName() {
+ return deptName;
+ }
+
+ public void setDeptName(String deptName) {
+ this.deptName = deptName;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/DeptTreeModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/DeptTreeModelImpl.java
new file mode 100644
index 0000000..c9af913
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/DeptTreeModelImpl.java
@@ -0,0 +1,58 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.DeptTreeBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 12:35
+ * @email : 290677893@qq.com
+ **/
+public class DeptTreeModelImpl implements IDeptTreeModel {
+
+ private OnGetDeptTreeListener listener;
+
+ public DeptTreeModelImpl(OnGetDeptTreeListener changedListener) {
+ this.listener = changedListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnGetDeptTreeListener {
+ void onSuccess(DeptTreeBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String pid) {
+ Observable observable = RetrofitServiceManager.getDeptTreeResult(pid);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(DeptTreeBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IDeptTreeModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IDeptTreeModel.java
new file mode 100644
index 0000000..ab1947c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IDeptTreeModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IDeptTreeModel {
+ Subscription sendRetrofitRequest(String pid);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IPhoneBookModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IPhoneBookModel.java
new file mode 100644
index 0000000..9b3fa28
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IPhoneBookModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IPhoneBookModel {
+ Subscription sendRetrofitRequest(String deptid);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/PhoneBookModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/PhoneBookModelImpl.java
new file mode 100644
index 0000000..48247c2
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/PhoneBookModelImpl.java
@@ -0,0 +1,58 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.PhoneBookBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 11:21
+ * @email : 290677893@qq.com
+ **/
+public class PhoneBookModelImpl implements IPhoneBookModel {
+
+ private OnGetPhoneBookListener listener;
+
+ public PhoneBookModelImpl(OnGetPhoneBookListener bookListener) {
+ this.listener = bookListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnGetPhoneBookListener {
+ void onSuccess(PhoneBookBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String deptid) {
+ Observable observable = RetrofitServiceManager.getPhoneBookResult(deptid);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(PhoneBookBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTreePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTreePresenterImpl.java
new file mode 100644
index 0000000..e010f1a
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTreePresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.DeptTreeBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.DeptTreeModelImpl;
+import com.casic.dcms.mvp.view.IDeptTreeView;
+
+public class DeptTreePresenterImpl extends BasePresenter implements IDeptTreePresenter, DeptTreeModelImpl.OnGetDeptTreeListener {
+
+ private IDeptTreeView view;
+ private DeptTreeModelImpl actionModel;
+
+ public DeptTreePresenterImpl(IDeptTreeView deptTreeView) {
+ this.view = deptTreeView;
+ actionModel = new DeptTreeModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String pid) {
+ addSubscription(actionModel.sendRetrofitRequest(pid));
+ }
+
+ @Override
+ public void onSuccess(DeptTreeBean resultBean) {
+ view.obtainDeptTreeResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IDeptTreePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IDeptTreePresenter.java
new file mode 100644
index 0000000..81e5e65
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IDeptTreePresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IDeptTreePresenter {
+ void onReadyRetrofitRequest(String pid);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IPhoneBookPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IPhoneBookPresenter.java
new file mode 100644
index 0000000..bb5fa97
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IPhoneBookPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IPhoneBookPresenter {
+ void onReadyRetrofitRequest(String deptid);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/PhoneBookPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/PhoneBookPresenterImpl.java
new file mode 100644
index 0000000..97dfe8e
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/PhoneBookPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.PhoneBookBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.PhoneBookModelImpl;
+import com.casic.dcms.mvp.view.IPhoneBookView;
+
+public class PhoneBookPresenterImpl extends BasePresenter implements IPhoneBookPresenter, PhoneBookModelImpl.OnGetPhoneBookListener {
+
+ private IPhoneBookView view;
+ private PhoneBookModelImpl actionModel;
+
+ public PhoneBookPresenterImpl(IPhoneBookView phoneBookView) {
+ this.view = phoneBookView;
+ actionModel = new PhoneBookModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String deptid) {
+ addSubscription(actionModel.sendRetrofitRequest(deptid));
+ }
+
+ @Override
+ public void onSuccess(PhoneBookBean resultBean) {
+ view.obtainPhoneBookResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 7befe7c..54b3625 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -12,6 +12,7 @@
+
+
groupData = new ArrayList<>();
+ private List> childData = new ArrayList<>();
+ private LayoutInflater layoutInflater;
+
+ public DeptExpandableAdapter(Context mContext) {
+ layoutInflater = LayoutInflater.from(mContext);
+ }
+
+ public void setData(@Nullable List groupList, @Nullable List> childList) {
+ groupData.clear();
+ childData.clear();
+ if (groupList != null) {
+ this.groupData = groupList;
+ if (childList != null) {
+ this.childData = childList;
+ }
+ }
+ notifyDataSetChanged();
+ }
+
+ @Override
+ public int getGroupCount() {
+ return groupData.size();
+ }
+
+ @Override
+ public int getChildrenCount(int groupPosition) {
+ return childData.get(groupPosition).size();
+ }
+
+ @Override
+ public Object getGroup(int groupPosition) {
+ return groupData.get(groupPosition);
+ }
+
+ @Override
+ public Object getChild(int groupPosition, int childPosition) {
+ return childData.get(groupPosition).get(childPosition);
+ }
+
+ @Override
+ public long getGroupId(int groupPosition) {
+ return groupPosition;
+ }
+
+ @Override
+ public long getChildId(int groupPosition, int childPosition) {
+ return childPosition;
+ }
+
+ @Override
+ public boolean hasStableIds() {
+ return false;
+ }
+
+ @Override
+ public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
+ GroupViewHolder groupHolder;
+ if (convertView == null) {
+ convertView = layoutInflater.inflate(R.layout.item_group_list, parent, false);
+ groupHolder = new GroupViewHolder();
+ groupHolder.groupNameView = convertView.findViewById(R.id.groupNameView);
+ convertView.setTag(groupHolder);
+ } else {
+ groupHolder = (GroupViewHolder) convertView.getTag();
+ }
+ groupHolder.groupNameView.setText(groupData.get(groupPosition));
+ return convertView;
+ }
+
+ @Override
+ public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
+ ChildViewHolder itemHolder;
+ if (convertView == null) {
+ convertView = layoutInflater.inflate(R.layout.item_child_list, parent, false);
+ itemHolder = new ChildViewHolder();
+ itemHolder.childNameView = convertView.findViewById(R.id.childNameView);
+ itemHolder.childPhoneView = convertView.findViewById(R.id.childPhoneView);
+ convertView.setTag(itemHolder);
+ } else {
+ itemHolder = (ChildViewHolder) convertView.getTag();
+ }
+ itemHolder.childNameView.setText(childData.get(groupPosition).get(childPosition).getPersonName());
+ itemHolder.childPhoneView.setText(childData.get(groupPosition).get(childPosition).getPersonPhone());
+ return convertView;
+ }
+
+ //设置子列表是否可选中
+ @Override
+ public boolean isChildSelectable(int groupPosition, int childPosition) {
+ return true;
+ }
+
+ private static class GroupViewHolder {
+ private TextView groupNameView;
+ }
+
+ private static class ChildViewHolder {
+ private TextView childNameView;
+ private TextView childPhoneView;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/adapter/SwipeViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/SwipeViewAdapter.java
new file mode 100644
index 0000000..aa469ff
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/adapter/SwipeViewAdapter.java
@@ -0,0 +1,96 @@
+package com.casic.dcms.adapter;
+
+import android.content.Context;
+import android.graphics.Color;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.casic.dcms.R;
+import com.casic.dcms.bean.NoticeBean;
+import com.qmuiteam.qmui.recyclerView.QMUISwipeAction;
+import com.qmuiteam.qmui.recyclerView.QMUISwipeViewHolder;
+import com.qmuiteam.qmui.util.QMUIDisplayHelper;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 9:47
+ * @email : 290677893@qq.com
+ **/
+public class SwipeViewAdapter extends RecyclerView.Adapter {
+
+ private List mData = new ArrayList<>();
+ private final QMUISwipeAction mDeleteAction;
+
+ public SwipeViewAdapter(Context context) {
+ QMUISwipeAction.ActionBuilder builder = new QMUISwipeAction.ActionBuilder()
+ .textSize(QMUIDisplayHelper.sp2px(context, 18))
+ .textColor(Color.WHITE)
+ .paddingStartEnd(QMUIDisplayHelper.dp2px(context, 18));
+ mDeleteAction = builder.text("删除").backgroundColor(Color.RED).build();
+ }
+
+ public void setData(@Nullable List list) {
+ mData.clear();
+ if (list != null) {
+ mData.addAll(list);
+ }
+ notifyDataSetChanged();
+ }
+
+ public void remove(int pos) {
+ mData.remove(pos);
+ notifyItemRemoved(pos);
+ }
+
+ @NonNull
+ @Override
+ public QMUISwipeViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_notice_list, parent, false);
+ final QMUISwipeViewHolder swipeViewHolder = new QMUISwipeViewHolder(view);
+ swipeViewHolder.addSwipeAction(mDeleteAction);
+ return swipeViewHolder;
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull QMUISwipeViewHolder holder, int position) {
+ TextView noticeTitleView = holder.itemView.findViewById(R.id.noticeTitleView);
+ TextView noticeDateView = holder.itemView.findViewById(R.id.noticeDateView);
+ TextView noticeContentView = holder.itemView.findViewById(R.id.noticeContentView);
+
+ NoticeBean noticeBean = mData.get(position);
+ noticeTitleView.setText(noticeBean.getNoticeTitle());
+ noticeDateView.setText(noticeBean.getNoticeDate());
+ noticeContentView.setText(noticeBean.getNoticeContent());
+ holder.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ clickListener.onClick(position);
+ }
+ });
+ }
+
+ @Override
+ public int getItemCount() {
+ return mData.size();
+ }
+
+ private OnItemClickListener clickListener;
+
+ public interface OnItemClickListener {
+ void onClick(int position);
+ }
+
+ public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
+ this.clickListener = onItemClickListener;
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/bean/DeptTreeBean.java b/app/src/main/java/com/casic/dcms/bean/DeptTreeBean.java
new file mode 100644
index 0000000..7f0f079
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/DeptTreeBean.java
@@ -0,0 +1,153 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 12:46
+ * @email : 290677893@qq.com
+ **/
+public class DeptTreeBean {
+
+ /**
+ * code : 200.0
+ * data : {"list":[{"checked":false,"code":"","id":"1177026995528237058","name":"指挥中心","open":false,"pcodes":"","pid":"24","value":""}]}
+ * message : 请求成功
+ * success : true
+ */
+
+ private double code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ private List list;
+
+ public List getList() {
+ return list;
+ }
+
+ public void setList(List list) {
+ this.list = list;
+ }
+
+ public static class ListBean {
+ /**
+ * checked : false
+ * code :
+ * id : 1177026995528237058
+ * name : 指挥中心
+ * open : false
+ * pcodes :
+ * pid : 24
+ * value :
+ */
+
+ private boolean checked;
+ private String code;
+ private String id;
+ private String name;
+ private boolean open;
+ private String pcodes;
+ private String pid;
+ private String value;
+
+ public boolean isChecked() {
+ return checked;
+ }
+
+ public void setChecked(boolean checked) {
+ this.checked = checked;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public boolean isOpen() {
+ return open;
+ }
+
+ public void setOpen(boolean open) {
+ this.open = open;
+ }
+
+ public String getPcodes() {
+ return pcodes;
+ }
+
+ public void setPcodes(String pcodes) {
+ this.pcodes = pcodes;
+ }
+
+ public String getPid() {
+ return pid;
+ }
+
+ public void setPid(String pid) {
+ this.pid = pid;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/NoticeBean.java b/app/src/main/java/com/casic/dcms/bean/NoticeBean.java
new file mode 100644
index 0000000..e68d12e
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/NoticeBean.java
@@ -0,0 +1,45 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 10:03
+ * @email : 290677893@qq.com
+ **/
+public class NoticeBean {
+ private String noticeTitle;
+ private String noticeDate;
+ private String noticeContent;
+ private String senderName;
+
+ public String getNoticeTitle() {
+ return noticeTitle;
+ }
+
+ public void setNoticeTitle(String noticeTitle) {
+ this.noticeTitle = noticeTitle;
+ }
+
+ public String getNoticeDate() {
+ return noticeDate;
+ }
+
+ public void setNoticeDate(String noticeDate) {
+ this.noticeDate = noticeDate;
+ }
+
+ public String getNoticeContent() {
+ return noticeContent;
+ }
+
+ public void setNoticeContent(String noticeContent) {
+ this.noticeContent = noticeContent;
+ }
+
+ public String getSenderName() {
+ return senderName;
+ }
+
+ public void setSenderName(String senderName) {
+ this.senderName = senderName;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/PersonPhoneBean.java b/app/src/main/java/com/casic/dcms/bean/PersonPhoneBean.java
new file mode 100644
index 0000000..d6443ac
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/PersonPhoneBean.java
@@ -0,0 +1,27 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 13:00
+ * @email : 290677893@qq.com
+ **/
+public class PersonPhoneBean {
+ private String personName;
+ private String personPhone;
+
+ public String getPersonName() {
+ return personName;
+ }
+
+ public void setPersonName(String personName) {
+ this.personName = personName;
+ }
+
+ public String getPersonPhone() {
+ return personPhone;
+ }
+
+ public void setPersonPhone(String personPhone) {
+ this.personPhone = personPhone;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/PhoneBookBean.java b/app/src/main/java/com/casic/dcms/bean/PhoneBookBean.java
new file mode 100644
index 0000000..9242676
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/PhoneBookBean.java
@@ -0,0 +1,131 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 11:34
+ * @email : 290677893@qq.com
+ **/
+public class PhoneBookBean {
+
+ /**
+ * code : 200.0
+ * data : [{"account":"sp_zhcg","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1206921310454312961","name":"中心视频","phone":""},{"account":"cgzbz","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177048865279356930","name":"值班长","phone":""},{"account":"pacr_dp","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1355036418525347842","name":"平安崇仁对接用户","phone":""},{"account":"cgzhz","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177049102999924737","name":"指挥长","phone":"18600202669"},{"account":"cgjd03","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1196382448976011266","name":"李斌","phone":""},{"account":"cgjd01","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177050541084160002","name":"王金龙","phone":"18600202669"},{"account":"cgsl01","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177050327115935746","name":"白雅茹","phone":""},{"account":"cgpq01","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177050762996396034","name":"艾闻","phone":""},{"account":"cgjd02","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177050541084160013","name":"苗建峰","phone":""},{"account":"cgld","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1193696400776249345","name":"领导","phone":""}]
+ * message : 请求成功
+ * success : true
+ */
+
+ private double code;
+ private String message;
+ private boolean success;
+ private List data;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public static class DataBean {
+ /**
+ * account : sp_zhcg
+ * attr1 :
+ * deptId : 1177026995528237058
+ * deptName : 指挥中心
+ * id : 1206921310454312961
+ * name : 中心视频
+ * phone :
+ */
+
+ private String account;
+ private String attr1;
+ private String deptId;
+ private String deptName;
+ private String id;
+ private String name;
+ private String phone;
+
+ public String getAccount() {
+ return account;
+ }
+
+ public void setAccount(String account) {
+ this.account = account;
+ }
+
+ public String getAttr1() {
+ return attr1;
+ }
+
+ public void setAttr1(String attr1) {
+ this.attr1 = attr1;
+ }
+
+ public String getDeptId() {
+ return deptId;
+ }
+
+ public void setDeptId(String deptId) {
+ this.deptId = deptId;
+ }
+
+ public String getDeptName() {
+ return deptName;
+ }
+
+ public void setDeptName(String deptName) {
+ this.deptName = deptName;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/DeptTreeModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/DeptTreeModelImpl.java
new file mode 100644
index 0000000..c9af913
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/DeptTreeModelImpl.java
@@ -0,0 +1,58 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.DeptTreeBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 12:35
+ * @email : 290677893@qq.com
+ **/
+public class DeptTreeModelImpl implements IDeptTreeModel {
+
+ private OnGetDeptTreeListener listener;
+
+ public DeptTreeModelImpl(OnGetDeptTreeListener changedListener) {
+ this.listener = changedListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnGetDeptTreeListener {
+ void onSuccess(DeptTreeBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String pid) {
+ Observable observable = RetrofitServiceManager.getDeptTreeResult(pid);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(DeptTreeBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IDeptTreeModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IDeptTreeModel.java
new file mode 100644
index 0000000..ab1947c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IDeptTreeModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IDeptTreeModel {
+ Subscription sendRetrofitRequest(String pid);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IPhoneBookModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IPhoneBookModel.java
new file mode 100644
index 0000000..9b3fa28
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IPhoneBookModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IPhoneBookModel {
+ Subscription sendRetrofitRequest(String deptid);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/PhoneBookModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/PhoneBookModelImpl.java
new file mode 100644
index 0000000..48247c2
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/PhoneBookModelImpl.java
@@ -0,0 +1,58 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.PhoneBookBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 11:21
+ * @email : 290677893@qq.com
+ **/
+public class PhoneBookModelImpl implements IPhoneBookModel {
+
+ private OnGetPhoneBookListener listener;
+
+ public PhoneBookModelImpl(OnGetPhoneBookListener bookListener) {
+ this.listener = bookListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnGetPhoneBookListener {
+ void onSuccess(PhoneBookBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String deptid) {
+ Observable observable = RetrofitServiceManager.getPhoneBookResult(deptid);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(PhoneBookBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTreePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTreePresenterImpl.java
new file mode 100644
index 0000000..e010f1a
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTreePresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.DeptTreeBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.DeptTreeModelImpl;
+import com.casic.dcms.mvp.view.IDeptTreeView;
+
+public class DeptTreePresenterImpl extends BasePresenter implements IDeptTreePresenter, DeptTreeModelImpl.OnGetDeptTreeListener {
+
+ private IDeptTreeView view;
+ private DeptTreeModelImpl actionModel;
+
+ public DeptTreePresenterImpl(IDeptTreeView deptTreeView) {
+ this.view = deptTreeView;
+ actionModel = new DeptTreeModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String pid) {
+ addSubscription(actionModel.sendRetrofitRequest(pid));
+ }
+
+ @Override
+ public void onSuccess(DeptTreeBean resultBean) {
+ view.obtainDeptTreeResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IDeptTreePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IDeptTreePresenter.java
new file mode 100644
index 0000000..81e5e65
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IDeptTreePresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IDeptTreePresenter {
+ void onReadyRetrofitRequest(String pid);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IPhoneBookPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IPhoneBookPresenter.java
new file mode 100644
index 0000000..bb5fa97
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IPhoneBookPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IPhoneBookPresenter {
+ void onReadyRetrofitRequest(String deptid);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/PhoneBookPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/PhoneBookPresenterImpl.java
new file mode 100644
index 0000000..97dfe8e
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/PhoneBookPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.PhoneBookBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.PhoneBookModelImpl;
+import com.casic.dcms.mvp.view.IPhoneBookView;
+
+public class PhoneBookPresenterImpl extends BasePresenter implements IPhoneBookPresenter, PhoneBookModelImpl.OnGetPhoneBookListener {
+
+ private IPhoneBookView view;
+ private PhoneBookModelImpl actionModel;
+
+ public PhoneBookPresenterImpl(IPhoneBookView phoneBookView) {
+ this.view = phoneBookView;
+ actionModel = new PhoneBookModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String deptid) {
+ addSubscription(actionModel.sendRetrofitRequest(deptid));
+ }
+
+ @Override
+ public void onSuccess(PhoneBookBean resultBean) {
+ view.obtainPhoneBookResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IDeptTreeView.java b/app/src/main/java/com/casic/dcms/mvp/view/IDeptTreeView.java
new file mode 100644
index 0000000..805e0a5
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IDeptTreeView.java
@@ -0,0 +1,12 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.DeptTreeBean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 11:41
+ * @email : 290677893@qq.com
+ **/
+public interface IDeptTreeView {
+ void obtainDeptTreeResult(DeptTreeBean resultBean);
+}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 7befe7c..54b3625 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -12,6 +12,7 @@
+
+
groupData = new ArrayList<>();
+ private List> childData = new ArrayList<>();
+ private LayoutInflater layoutInflater;
+
+ public DeptExpandableAdapter(Context mContext) {
+ layoutInflater = LayoutInflater.from(mContext);
+ }
+
+ public void setData(@Nullable List groupList, @Nullable List> childList) {
+ groupData.clear();
+ childData.clear();
+ if (groupList != null) {
+ this.groupData = groupList;
+ if (childList != null) {
+ this.childData = childList;
+ }
+ }
+ notifyDataSetChanged();
+ }
+
+ @Override
+ public int getGroupCount() {
+ return groupData.size();
+ }
+
+ @Override
+ public int getChildrenCount(int groupPosition) {
+ return childData.get(groupPosition).size();
+ }
+
+ @Override
+ public Object getGroup(int groupPosition) {
+ return groupData.get(groupPosition);
+ }
+
+ @Override
+ public Object getChild(int groupPosition, int childPosition) {
+ return childData.get(groupPosition).get(childPosition);
+ }
+
+ @Override
+ public long getGroupId(int groupPosition) {
+ return groupPosition;
+ }
+
+ @Override
+ public long getChildId(int groupPosition, int childPosition) {
+ return childPosition;
+ }
+
+ @Override
+ public boolean hasStableIds() {
+ return false;
+ }
+
+ @Override
+ public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
+ GroupViewHolder groupHolder;
+ if (convertView == null) {
+ convertView = layoutInflater.inflate(R.layout.item_group_list, parent, false);
+ groupHolder = new GroupViewHolder();
+ groupHolder.groupNameView = convertView.findViewById(R.id.groupNameView);
+ convertView.setTag(groupHolder);
+ } else {
+ groupHolder = (GroupViewHolder) convertView.getTag();
+ }
+ groupHolder.groupNameView.setText(groupData.get(groupPosition));
+ return convertView;
+ }
+
+ @Override
+ public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
+ ChildViewHolder itemHolder;
+ if (convertView == null) {
+ convertView = layoutInflater.inflate(R.layout.item_child_list, parent, false);
+ itemHolder = new ChildViewHolder();
+ itemHolder.childNameView = convertView.findViewById(R.id.childNameView);
+ itemHolder.childPhoneView = convertView.findViewById(R.id.childPhoneView);
+ convertView.setTag(itemHolder);
+ } else {
+ itemHolder = (ChildViewHolder) convertView.getTag();
+ }
+ itemHolder.childNameView.setText(childData.get(groupPosition).get(childPosition).getPersonName());
+ itemHolder.childPhoneView.setText(childData.get(groupPosition).get(childPosition).getPersonPhone());
+ return convertView;
+ }
+
+ //设置子列表是否可选中
+ @Override
+ public boolean isChildSelectable(int groupPosition, int childPosition) {
+ return true;
+ }
+
+ private static class GroupViewHolder {
+ private TextView groupNameView;
+ }
+
+ private static class ChildViewHolder {
+ private TextView childNameView;
+ private TextView childPhoneView;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/adapter/SwipeViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/SwipeViewAdapter.java
new file mode 100644
index 0000000..aa469ff
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/adapter/SwipeViewAdapter.java
@@ -0,0 +1,96 @@
+package com.casic.dcms.adapter;
+
+import android.content.Context;
+import android.graphics.Color;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.casic.dcms.R;
+import com.casic.dcms.bean.NoticeBean;
+import com.qmuiteam.qmui.recyclerView.QMUISwipeAction;
+import com.qmuiteam.qmui.recyclerView.QMUISwipeViewHolder;
+import com.qmuiteam.qmui.util.QMUIDisplayHelper;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 9:47
+ * @email : 290677893@qq.com
+ **/
+public class SwipeViewAdapter extends RecyclerView.Adapter {
+
+ private List mData = new ArrayList<>();
+ private final QMUISwipeAction mDeleteAction;
+
+ public SwipeViewAdapter(Context context) {
+ QMUISwipeAction.ActionBuilder builder = new QMUISwipeAction.ActionBuilder()
+ .textSize(QMUIDisplayHelper.sp2px(context, 18))
+ .textColor(Color.WHITE)
+ .paddingStartEnd(QMUIDisplayHelper.dp2px(context, 18));
+ mDeleteAction = builder.text("删除").backgroundColor(Color.RED).build();
+ }
+
+ public void setData(@Nullable List list) {
+ mData.clear();
+ if (list != null) {
+ mData.addAll(list);
+ }
+ notifyDataSetChanged();
+ }
+
+ public void remove(int pos) {
+ mData.remove(pos);
+ notifyItemRemoved(pos);
+ }
+
+ @NonNull
+ @Override
+ public QMUISwipeViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_notice_list, parent, false);
+ final QMUISwipeViewHolder swipeViewHolder = new QMUISwipeViewHolder(view);
+ swipeViewHolder.addSwipeAction(mDeleteAction);
+ return swipeViewHolder;
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull QMUISwipeViewHolder holder, int position) {
+ TextView noticeTitleView = holder.itemView.findViewById(R.id.noticeTitleView);
+ TextView noticeDateView = holder.itemView.findViewById(R.id.noticeDateView);
+ TextView noticeContentView = holder.itemView.findViewById(R.id.noticeContentView);
+
+ NoticeBean noticeBean = mData.get(position);
+ noticeTitleView.setText(noticeBean.getNoticeTitle());
+ noticeDateView.setText(noticeBean.getNoticeDate());
+ noticeContentView.setText(noticeBean.getNoticeContent());
+ holder.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ clickListener.onClick(position);
+ }
+ });
+ }
+
+ @Override
+ public int getItemCount() {
+ return mData.size();
+ }
+
+ private OnItemClickListener clickListener;
+
+ public interface OnItemClickListener {
+ void onClick(int position);
+ }
+
+ public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
+ this.clickListener = onItemClickListener;
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/bean/DeptTreeBean.java b/app/src/main/java/com/casic/dcms/bean/DeptTreeBean.java
new file mode 100644
index 0000000..7f0f079
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/DeptTreeBean.java
@@ -0,0 +1,153 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 12:46
+ * @email : 290677893@qq.com
+ **/
+public class DeptTreeBean {
+
+ /**
+ * code : 200.0
+ * data : {"list":[{"checked":false,"code":"","id":"1177026995528237058","name":"指挥中心","open":false,"pcodes":"","pid":"24","value":""}]}
+ * message : 请求成功
+ * success : true
+ */
+
+ private double code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ private List list;
+
+ public List getList() {
+ return list;
+ }
+
+ public void setList(List list) {
+ this.list = list;
+ }
+
+ public static class ListBean {
+ /**
+ * checked : false
+ * code :
+ * id : 1177026995528237058
+ * name : 指挥中心
+ * open : false
+ * pcodes :
+ * pid : 24
+ * value :
+ */
+
+ private boolean checked;
+ private String code;
+ private String id;
+ private String name;
+ private boolean open;
+ private String pcodes;
+ private String pid;
+ private String value;
+
+ public boolean isChecked() {
+ return checked;
+ }
+
+ public void setChecked(boolean checked) {
+ this.checked = checked;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public boolean isOpen() {
+ return open;
+ }
+
+ public void setOpen(boolean open) {
+ this.open = open;
+ }
+
+ public String getPcodes() {
+ return pcodes;
+ }
+
+ public void setPcodes(String pcodes) {
+ this.pcodes = pcodes;
+ }
+
+ public String getPid() {
+ return pid;
+ }
+
+ public void setPid(String pid) {
+ this.pid = pid;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/NoticeBean.java b/app/src/main/java/com/casic/dcms/bean/NoticeBean.java
new file mode 100644
index 0000000..e68d12e
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/NoticeBean.java
@@ -0,0 +1,45 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 10:03
+ * @email : 290677893@qq.com
+ **/
+public class NoticeBean {
+ private String noticeTitle;
+ private String noticeDate;
+ private String noticeContent;
+ private String senderName;
+
+ public String getNoticeTitle() {
+ return noticeTitle;
+ }
+
+ public void setNoticeTitle(String noticeTitle) {
+ this.noticeTitle = noticeTitle;
+ }
+
+ public String getNoticeDate() {
+ return noticeDate;
+ }
+
+ public void setNoticeDate(String noticeDate) {
+ this.noticeDate = noticeDate;
+ }
+
+ public String getNoticeContent() {
+ return noticeContent;
+ }
+
+ public void setNoticeContent(String noticeContent) {
+ this.noticeContent = noticeContent;
+ }
+
+ public String getSenderName() {
+ return senderName;
+ }
+
+ public void setSenderName(String senderName) {
+ this.senderName = senderName;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/PersonPhoneBean.java b/app/src/main/java/com/casic/dcms/bean/PersonPhoneBean.java
new file mode 100644
index 0000000..d6443ac
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/PersonPhoneBean.java
@@ -0,0 +1,27 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 13:00
+ * @email : 290677893@qq.com
+ **/
+public class PersonPhoneBean {
+ private String personName;
+ private String personPhone;
+
+ public String getPersonName() {
+ return personName;
+ }
+
+ public void setPersonName(String personName) {
+ this.personName = personName;
+ }
+
+ public String getPersonPhone() {
+ return personPhone;
+ }
+
+ public void setPersonPhone(String personPhone) {
+ this.personPhone = personPhone;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/PhoneBookBean.java b/app/src/main/java/com/casic/dcms/bean/PhoneBookBean.java
new file mode 100644
index 0000000..9242676
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/PhoneBookBean.java
@@ -0,0 +1,131 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 11:34
+ * @email : 290677893@qq.com
+ **/
+public class PhoneBookBean {
+
+ /**
+ * code : 200.0
+ * data : [{"account":"sp_zhcg","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1206921310454312961","name":"中心视频","phone":""},{"account":"cgzbz","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177048865279356930","name":"值班长","phone":""},{"account":"pacr_dp","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1355036418525347842","name":"平安崇仁对接用户","phone":""},{"account":"cgzhz","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177049102999924737","name":"指挥长","phone":"18600202669"},{"account":"cgjd03","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1196382448976011266","name":"李斌","phone":""},{"account":"cgjd01","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177050541084160002","name":"王金龙","phone":"18600202669"},{"account":"cgsl01","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177050327115935746","name":"白雅茹","phone":""},{"account":"cgpq01","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177050762996396034","name":"艾闻","phone":""},{"account":"cgjd02","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177050541084160013","name":"苗建峰","phone":""},{"account":"cgld","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1193696400776249345","name":"领导","phone":""}]
+ * message : 请求成功
+ * success : true
+ */
+
+ private double code;
+ private String message;
+ private boolean success;
+ private List data;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public static class DataBean {
+ /**
+ * account : sp_zhcg
+ * attr1 :
+ * deptId : 1177026995528237058
+ * deptName : 指挥中心
+ * id : 1206921310454312961
+ * name : 中心视频
+ * phone :
+ */
+
+ private String account;
+ private String attr1;
+ private String deptId;
+ private String deptName;
+ private String id;
+ private String name;
+ private String phone;
+
+ public String getAccount() {
+ return account;
+ }
+
+ public void setAccount(String account) {
+ this.account = account;
+ }
+
+ public String getAttr1() {
+ return attr1;
+ }
+
+ public void setAttr1(String attr1) {
+ this.attr1 = attr1;
+ }
+
+ public String getDeptId() {
+ return deptId;
+ }
+
+ public void setDeptId(String deptId) {
+ this.deptId = deptId;
+ }
+
+ public String getDeptName() {
+ return deptName;
+ }
+
+ public void setDeptName(String deptName) {
+ this.deptName = deptName;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/DeptTreeModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/DeptTreeModelImpl.java
new file mode 100644
index 0000000..c9af913
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/DeptTreeModelImpl.java
@@ -0,0 +1,58 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.DeptTreeBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 12:35
+ * @email : 290677893@qq.com
+ **/
+public class DeptTreeModelImpl implements IDeptTreeModel {
+
+ private OnGetDeptTreeListener listener;
+
+ public DeptTreeModelImpl(OnGetDeptTreeListener changedListener) {
+ this.listener = changedListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnGetDeptTreeListener {
+ void onSuccess(DeptTreeBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String pid) {
+ Observable observable = RetrofitServiceManager.getDeptTreeResult(pid);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(DeptTreeBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IDeptTreeModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IDeptTreeModel.java
new file mode 100644
index 0000000..ab1947c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IDeptTreeModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IDeptTreeModel {
+ Subscription sendRetrofitRequest(String pid);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IPhoneBookModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IPhoneBookModel.java
new file mode 100644
index 0000000..9b3fa28
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IPhoneBookModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IPhoneBookModel {
+ Subscription sendRetrofitRequest(String deptid);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/PhoneBookModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/PhoneBookModelImpl.java
new file mode 100644
index 0000000..48247c2
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/PhoneBookModelImpl.java
@@ -0,0 +1,58 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.PhoneBookBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 11:21
+ * @email : 290677893@qq.com
+ **/
+public class PhoneBookModelImpl implements IPhoneBookModel {
+
+ private OnGetPhoneBookListener listener;
+
+ public PhoneBookModelImpl(OnGetPhoneBookListener bookListener) {
+ this.listener = bookListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnGetPhoneBookListener {
+ void onSuccess(PhoneBookBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String deptid) {
+ Observable observable = RetrofitServiceManager.getPhoneBookResult(deptid);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(PhoneBookBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTreePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTreePresenterImpl.java
new file mode 100644
index 0000000..e010f1a
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTreePresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.DeptTreeBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.DeptTreeModelImpl;
+import com.casic.dcms.mvp.view.IDeptTreeView;
+
+public class DeptTreePresenterImpl extends BasePresenter implements IDeptTreePresenter, DeptTreeModelImpl.OnGetDeptTreeListener {
+
+ private IDeptTreeView view;
+ private DeptTreeModelImpl actionModel;
+
+ public DeptTreePresenterImpl(IDeptTreeView deptTreeView) {
+ this.view = deptTreeView;
+ actionModel = new DeptTreeModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String pid) {
+ addSubscription(actionModel.sendRetrofitRequest(pid));
+ }
+
+ @Override
+ public void onSuccess(DeptTreeBean resultBean) {
+ view.obtainDeptTreeResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IDeptTreePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IDeptTreePresenter.java
new file mode 100644
index 0000000..81e5e65
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IDeptTreePresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IDeptTreePresenter {
+ void onReadyRetrofitRequest(String pid);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IPhoneBookPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IPhoneBookPresenter.java
new file mode 100644
index 0000000..bb5fa97
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IPhoneBookPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IPhoneBookPresenter {
+ void onReadyRetrofitRequest(String deptid);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/PhoneBookPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/PhoneBookPresenterImpl.java
new file mode 100644
index 0000000..97dfe8e
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/PhoneBookPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.PhoneBookBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.PhoneBookModelImpl;
+import com.casic.dcms.mvp.view.IPhoneBookView;
+
+public class PhoneBookPresenterImpl extends BasePresenter implements IPhoneBookPresenter, PhoneBookModelImpl.OnGetPhoneBookListener {
+
+ private IPhoneBookView view;
+ private PhoneBookModelImpl actionModel;
+
+ public PhoneBookPresenterImpl(IPhoneBookView phoneBookView) {
+ this.view = phoneBookView;
+ actionModel = new PhoneBookModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String deptid) {
+ addSubscription(actionModel.sendRetrofitRequest(deptid));
+ }
+
+ @Override
+ public void onSuccess(PhoneBookBean resultBean) {
+ view.obtainPhoneBookResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IDeptTreeView.java b/app/src/main/java/com/casic/dcms/mvp/view/IDeptTreeView.java
new file mode 100644
index 0000000..805e0a5
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IDeptTreeView.java
@@ -0,0 +1,12 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.DeptTreeBean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 11:41
+ * @email : 290677893@qq.com
+ **/
+public interface IDeptTreeView {
+ void obtainDeptTreeResult(DeptTreeBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IPhoneBookView.java b/app/src/main/java/com/casic/dcms/mvp/view/IPhoneBookView.java
new file mode 100644
index 0000000..0b815d6
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IPhoneBookView.java
@@ -0,0 +1,12 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.PhoneBookBean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 11:17
+ * @email : 290677893@qq.com
+ **/
+public interface IPhoneBookView {
+ void obtainPhoneBookResult(PhoneBookBean resultBean);
+}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 7befe7c..54b3625 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -12,6 +12,7 @@
+
+
groupData = new ArrayList<>();
+ private List> childData = new ArrayList<>();
+ private LayoutInflater layoutInflater;
+
+ public DeptExpandableAdapter(Context mContext) {
+ layoutInflater = LayoutInflater.from(mContext);
+ }
+
+ public void setData(@Nullable List groupList, @Nullable List> childList) {
+ groupData.clear();
+ childData.clear();
+ if (groupList != null) {
+ this.groupData = groupList;
+ if (childList != null) {
+ this.childData = childList;
+ }
+ }
+ notifyDataSetChanged();
+ }
+
+ @Override
+ public int getGroupCount() {
+ return groupData.size();
+ }
+
+ @Override
+ public int getChildrenCount(int groupPosition) {
+ return childData.get(groupPosition).size();
+ }
+
+ @Override
+ public Object getGroup(int groupPosition) {
+ return groupData.get(groupPosition);
+ }
+
+ @Override
+ public Object getChild(int groupPosition, int childPosition) {
+ return childData.get(groupPosition).get(childPosition);
+ }
+
+ @Override
+ public long getGroupId(int groupPosition) {
+ return groupPosition;
+ }
+
+ @Override
+ public long getChildId(int groupPosition, int childPosition) {
+ return childPosition;
+ }
+
+ @Override
+ public boolean hasStableIds() {
+ return false;
+ }
+
+ @Override
+ public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
+ GroupViewHolder groupHolder;
+ if (convertView == null) {
+ convertView = layoutInflater.inflate(R.layout.item_group_list, parent, false);
+ groupHolder = new GroupViewHolder();
+ groupHolder.groupNameView = convertView.findViewById(R.id.groupNameView);
+ convertView.setTag(groupHolder);
+ } else {
+ groupHolder = (GroupViewHolder) convertView.getTag();
+ }
+ groupHolder.groupNameView.setText(groupData.get(groupPosition));
+ return convertView;
+ }
+
+ @Override
+ public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
+ ChildViewHolder itemHolder;
+ if (convertView == null) {
+ convertView = layoutInflater.inflate(R.layout.item_child_list, parent, false);
+ itemHolder = new ChildViewHolder();
+ itemHolder.childNameView = convertView.findViewById(R.id.childNameView);
+ itemHolder.childPhoneView = convertView.findViewById(R.id.childPhoneView);
+ convertView.setTag(itemHolder);
+ } else {
+ itemHolder = (ChildViewHolder) convertView.getTag();
+ }
+ itemHolder.childNameView.setText(childData.get(groupPosition).get(childPosition).getPersonName());
+ itemHolder.childPhoneView.setText(childData.get(groupPosition).get(childPosition).getPersonPhone());
+ return convertView;
+ }
+
+ //设置子列表是否可选中
+ @Override
+ public boolean isChildSelectable(int groupPosition, int childPosition) {
+ return true;
+ }
+
+ private static class GroupViewHolder {
+ private TextView groupNameView;
+ }
+
+ private static class ChildViewHolder {
+ private TextView childNameView;
+ private TextView childPhoneView;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/adapter/SwipeViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/SwipeViewAdapter.java
new file mode 100644
index 0000000..aa469ff
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/adapter/SwipeViewAdapter.java
@@ -0,0 +1,96 @@
+package com.casic.dcms.adapter;
+
+import android.content.Context;
+import android.graphics.Color;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.casic.dcms.R;
+import com.casic.dcms.bean.NoticeBean;
+import com.qmuiteam.qmui.recyclerView.QMUISwipeAction;
+import com.qmuiteam.qmui.recyclerView.QMUISwipeViewHolder;
+import com.qmuiteam.qmui.util.QMUIDisplayHelper;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 9:47
+ * @email : 290677893@qq.com
+ **/
+public class SwipeViewAdapter extends RecyclerView.Adapter {
+
+ private List mData = new ArrayList<>();
+ private final QMUISwipeAction mDeleteAction;
+
+ public SwipeViewAdapter(Context context) {
+ QMUISwipeAction.ActionBuilder builder = new QMUISwipeAction.ActionBuilder()
+ .textSize(QMUIDisplayHelper.sp2px(context, 18))
+ .textColor(Color.WHITE)
+ .paddingStartEnd(QMUIDisplayHelper.dp2px(context, 18));
+ mDeleteAction = builder.text("删除").backgroundColor(Color.RED).build();
+ }
+
+ public void setData(@Nullable List list) {
+ mData.clear();
+ if (list != null) {
+ mData.addAll(list);
+ }
+ notifyDataSetChanged();
+ }
+
+ public void remove(int pos) {
+ mData.remove(pos);
+ notifyItemRemoved(pos);
+ }
+
+ @NonNull
+ @Override
+ public QMUISwipeViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_notice_list, parent, false);
+ final QMUISwipeViewHolder swipeViewHolder = new QMUISwipeViewHolder(view);
+ swipeViewHolder.addSwipeAction(mDeleteAction);
+ return swipeViewHolder;
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull QMUISwipeViewHolder holder, int position) {
+ TextView noticeTitleView = holder.itemView.findViewById(R.id.noticeTitleView);
+ TextView noticeDateView = holder.itemView.findViewById(R.id.noticeDateView);
+ TextView noticeContentView = holder.itemView.findViewById(R.id.noticeContentView);
+
+ NoticeBean noticeBean = mData.get(position);
+ noticeTitleView.setText(noticeBean.getNoticeTitle());
+ noticeDateView.setText(noticeBean.getNoticeDate());
+ noticeContentView.setText(noticeBean.getNoticeContent());
+ holder.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ clickListener.onClick(position);
+ }
+ });
+ }
+
+ @Override
+ public int getItemCount() {
+ return mData.size();
+ }
+
+ private OnItemClickListener clickListener;
+
+ public interface OnItemClickListener {
+ void onClick(int position);
+ }
+
+ public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
+ this.clickListener = onItemClickListener;
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/bean/DeptTreeBean.java b/app/src/main/java/com/casic/dcms/bean/DeptTreeBean.java
new file mode 100644
index 0000000..7f0f079
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/DeptTreeBean.java
@@ -0,0 +1,153 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 12:46
+ * @email : 290677893@qq.com
+ **/
+public class DeptTreeBean {
+
+ /**
+ * code : 200.0
+ * data : {"list":[{"checked":false,"code":"","id":"1177026995528237058","name":"指挥中心","open":false,"pcodes":"","pid":"24","value":""}]}
+ * message : 请求成功
+ * success : true
+ */
+
+ private double code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ private List list;
+
+ public List getList() {
+ return list;
+ }
+
+ public void setList(List list) {
+ this.list = list;
+ }
+
+ public static class ListBean {
+ /**
+ * checked : false
+ * code :
+ * id : 1177026995528237058
+ * name : 指挥中心
+ * open : false
+ * pcodes :
+ * pid : 24
+ * value :
+ */
+
+ private boolean checked;
+ private String code;
+ private String id;
+ private String name;
+ private boolean open;
+ private String pcodes;
+ private String pid;
+ private String value;
+
+ public boolean isChecked() {
+ return checked;
+ }
+
+ public void setChecked(boolean checked) {
+ this.checked = checked;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public boolean isOpen() {
+ return open;
+ }
+
+ public void setOpen(boolean open) {
+ this.open = open;
+ }
+
+ public String getPcodes() {
+ return pcodes;
+ }
+
+ public void setPcodes(String pcodes) {
+ this.pcodes = pcodes;
+ }
+
+ public String getPid() {
+ return pid;
+ }
+
+ public void setPid(String pid) {
+ this.pid = pid;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/NoticeBean.java b/app/src/main/java/com/casic/dcms/bean/NoticeBean.java
new file mode 100644
index 0000000..e68d12e
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/NoticeBean.java
@@ -0,0 +1,45 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 10:03
+ * @email : 290677893@qq.com
+ **/
+public class NoticeBean {
+ private String noticeTitle;
+ private String noticeDate;
+ private String noticeContent;
+ private String senderName;
+
+ public String getNoticeTitle() {
+ return noticeTitle;
+ }
+
+ public void setNoticeTitle(String noticeTitle) {
+ this.noticeTitle = noticeTitle;
+ }
+
+ public String getNoticeDate() {
+ return noticeDate;
+ }
+
+ public void setNoticeDate(String noticeDate) {
+ this.noticeDate = noticeDate;
+ }
+
+ public String getNoticeContent() {
+ return noticeContent;
+ }
+
+ public void setNoticeContent(String noticeContent) {
+ this.noticeContent = noticeContent;
+ }
+
+ public String getSenderName() {
+ return senderName;
+ }
+
+ public void setSenderName(String senderName) {
+ this.senderName = senderName;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/PersonPhoneBean.java b/app/src/main/java/com/casic/dcms/bean/PersonPhoneBean.java
new file mode 100644
index 0000000..d6443ac
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/PersonPhoneBean.java
@@ -0,0 +1,27 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 13:00
+ * @email : 290677893@qq.com
+ **/
+public class PersonPhoneBean {
+ private String personName;
+ private String personPhone;
+
+ public String getPersonName() {
+ return personName;
+ }
+
+ public void setPersonName(String personName) {
+ this.personName = personName;
+ }
+
+ public String getPersonPhone() {
+ return personPhone;
+ }
+
+ public void setPersonPhone(String personPhone) {
+ this.personPhone = personPhone;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/PhoneBookBean.java b/app/src/main/java/com/casic/dcms/bean/PhoneBookBean.java
new file mode 100644
index 0000000..9242676
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/PhoneBookBean.java
@@ -0,0 +1,131 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 11:34
+ * @email : 290677893@qq.com
+ **/
+public class PhoneBookBean {
+
+ /**
+ * code : 200.0
+ * data : [{"account":"sp_zhcg","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1206921310454312961","name":"中心视频","phone":""},{"account":"cgzbz","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177048865279356930","name":"值班长","phone":""},{"account":"pacr_dp","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1355036418525347842","name":"平安崇仁对接用户","phone":""},{"account":"cgzhz","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177049102999924737","name":"指挥长","phone":"18600202669"},{"account":"cgjd03","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1196382448976011266","name":"李斌","phone":""},{"account":"cgjd01","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177050541084160002","name":"王金龙","phone":"18600202669"},{"account":"cgsl01","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177050327115935746","name":"白雅茹","phone":""},{"account":"cgpq01","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177050762996396034","name":"艾闻","phone":""},{"account":"cgjd02","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177050541084160013","name":"苗建峰","phone":""},{"account":"cgld","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1193696400776249345","name":"领导","phone":""}]
+ * message : 请求成功
+ * success : true
+ */
+
+ private double code;
+ private String message;
+ private boolean success;
+ private List data;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public static class DataBean {
+ /**
+ * account : sp_zhcg
+ * attr1 :
+ * deptId : 1177026995528237058
+ * deptName : 指挥中心
+ * id : 1206921310454312961
+ * name : 中心视频
+ * phone :
+ */
+
+ private String account;
+ private String attr1;
+ private String deptId;
+ private String deptName;
+ private String id;
+ private String name;
+ private String phone;
+
+ public String getAccount() {
+ return account;
+ }
+
+ public void setAccount(String account) {
+ this.account = account;
+ }
+
+ public String getAttr1() {
+ return attr1;
+ }
+
+ public void setAttr1(String attr1) {
+ this.attr1 = attr1;
+ }
+
+ public String getDeptId() {
+ return deptId;
+ }
+
+ public void setDeptId(String deptId) {
+ this.deptId = deptId;
+ }
+
+ public String getDeptName() {
+ return deptName;
+ }
+
+ public void setDeptName(String deptName) {
+ this.deptName = deptName;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/DeptTreeModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/DeptTreeModelImpl.java
new file mode 100644
index 0000000..c9af913
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/DeptTreeModelImpl.java
@@ -0,0 +1,58 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.DeptTreeBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 12:35
+ * @email : 290677893@qq.com
+ **/
+public class DeptTreeModelImpl implements IDeptTreeModel {
+
+ private OnGetDeptTreeListener listener;
+
+ public DeptTreeModelImpl(OnGetDeptTreeListener changedListener) {
+ this.listener = changedListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnGetDeptTreeListener {
+ void onSuccess(DeptTreeBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String pid) {
+ Observable observable = RetrofitServiceManager.getDeptTreeResult(pid);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(DeptTreeBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IDeptTreeModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IDeptTreeModel.java
new file mode 100644
index 0000000..ab1947c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IDeptTreeModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IDeptTreeModel {
+ Subscription sendRetrofitRequest(String pid);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IPhoneBookModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IPhoneBookModel.java
new file mode 100644
index 0000000..9b3fa28
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IPhoneBookModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IPhoneBookModel {
+ Subscription sendRetrofitRequest(String deptid);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/PhoneBookModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/PhoneBookModelImpl.java
new file mode 100644
index 0000000..48247c2
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/PhoneBookModelImpl.java
@@ -0,0 +1,58 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.PhoneBookBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 11:21
+ * @email : 290677893@qq.com
+ **/
+public class PhoneBookModelImpl implements IPhoneBookModel {
+
+ private OnGetPhoneBookListener listener;
+
+ public PhoneBookModelImpl(OnGetPhoneBookListener bookListener) {
+ this.listener = bookListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnGetPhoneBookListener {
+ void onSuccess(PhoneBookBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String deptid) {
+ Observable observable = RetrofitServiceManager.getPhoneBookResult(deptid);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(PhoneBookBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTreePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTreePresenterImpl.java
new file mode 100644
index 0000000..e010f1a
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTreePresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.DeptTreeBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.DeptTreeModelImpl;
+import com.casic.dcms.mvp.view.IDeptTreeView;
+
+public class DeptTreePresenterImpl extends BasePresenter implements IDeptTreePresenter, DeptTreeModelImpl.OnGetDeptTreeListener {
+
+ private IDeptTreeView view;
+ private DeptTreeModelImpl actionModel;
+
+ public DeptTreePresenterImpl(IDeptTreeView deptTreeView) {
+ this.view = deptTreeView;
+ actionModel = new DeptTreeModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String pid) {
+ addSubscription(actionModel.sendRetrofitRequest(pid));
+ }
+
+ @Override
+ public void onSuccess(DeptTreeBean resultBean) {
+ view.obtainDeptTreeResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IDeptTreePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IDeptTreePresenter.java
new file mode 100644
index 0000000..81e5e65
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IDeptTreePresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IDeptTreePresenter {
+ void onReadyRetrofitRequest(String pid);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IPhoneBookPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IPhoneBookPresenter.java
new file mode 100644
index 0000000..bb5fa97
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IPhoneBookPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IPhoneBookPresenter {
+ void onReadyRetrofitRequest(String deptid);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/PhoneBookPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/PhoneBookPresenterImpl.java
new file mode 100644
index 0000000..97dfe8e
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/PhoneBookPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.PhoneBookBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.PhoneBookModelImpl;
+import com.casic.dcms.mvp.view.IPhoneBookView;
+
+public class PhoneBookPresenterImpl extends BasePresenter implements IPhoneBookPresenter, PhoneBookModelImpl.OnGetPhoneBookListener {
+
+ private IPhoneBookView view;
+ private PhoneBookModelImpl actionModel;
+
+ public PhoneBookPresenterImpl(IPhoneBookView phoneBookView) {
+ this.view = phoneBookView;
+ actionModel = new PhoneBookModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String deptid) {
+ addSubscription(actionModel.sendRetrofitRequest(deptid));
+ }
+
+ @Override
+ public void onSuccess(PhoneBookBean resultBean) {
+ view.obtainPhoneBookResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IDeptTreeView.java b/app/src/main/java/com/casic/dcms/mvp/view/IDeptTreeView.java
new file mode 100644
index 0000000..805e0a5
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IDeptTreeView.java
@@ -0,0 +1,12 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.DeptTreeBean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 11:41
+ * @email : 290677893@qq.com
+ **/
+public interface IDeptTreeView {
+ void obtainDeptTreeResult(DeptTreeBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IPhoneBookView.java b/app/src/main/java/com/casic/dcms/mvp/view/IPhoneBookView.java
new file mode 100644
index 0000000..0b815d6
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IPhoneBookView.java
@@ -0,0 +1,12 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.PhoneBookBean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 11:17
+ * @email : 290677893@qq.com
+ **/
+public interface IPhoneBookView {
+ void obtainPhoneBookResult(PhoneBookBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
index aa4100a..549b16a 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
@@ -118,9 +118,9 @@
@Override
protected void setupTopBarLayout() {
- caseTopLayout.setTitle("案卷上报").setTextColor(ContextCompat.getColor(this, R.color.black));
- caseTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.lightGray));
- caseTopLayout.addLeftImageButton(R.drawable.ic_left_black, 0).setOnClickListener(new View.OnClickListener() {
+ caseTopLayout.setTitle("案卷上报").setTextColor(ContextCompat.getColor(this, R.color.white));
+ caseTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ caseTopLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
@@ -517,7 +517,7 @@
if (largeClassBeans.size() == 0) {
caseLargeClassView.setText("无小类");
} else {
- caseLargeClassView.setText("请选择");
+ caseLargeClassView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个
}
caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
@@ -535,7 +535,7 @@
if (smallClassBeans.size() == 0) {
caseSmallClassView.setText("无小类");
} else {
- caseSmallClassView.setText("请选择");
+ caseSmallClassView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个
}
caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 7befe7c..54b3625 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -12,6 +12,7 @@
+
+
groupData = new ArrayList<>();
+ private List> childData = new ArrayList<>();
+ private LayoutInflater layoutInflater;
+
+ public DeptExpandableAdapter(Context mContext) {
+ layoutInflater = LayoutInflater.from(mContext);
+ }
+
+ public void setData(@Nullable List groupList, @Nullable List> childList) {
+ groupData.clear();
+ childData.clear();
+ if (groupList != null) {
+ this.groupData = groupList;
+ if (childList != null) {
+ this.childData = childList;
+ }
+ }
+ notifyDataSetChanged();
+ }
+
+ @Override
+ public int getGroupCount() {
+ return groupData.size();
+ }
+
+ @Override
+ public int getChildrenCount(int groupPosition) {
+ return childData.get(groupPosition).size();
+ }
+
+ @Override
+ public Object getGroup(int groupPosition) {
+ return groupData.get(groupPosition);
+ }
+
+ @Override
+ public Object getChild(int groupPosition, int childPosition) {
+ return childData.get(groupPosition).get(childPosition);
+ }
+
+ @Override
+ public long getGroupId(int groupPosition) {
+ return groupPosition;
+ }
+
+ @Override
+ public long getChildId(int groupPosition, int childPosition) {
+ return childPosition;
+ }
+
+ @Override
+ public boolean hasStableIds() {
+ return false;
+ }
+
+ @Override
+ public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
+ GroupViewHolder groupHolder;
+ if (convertView == null) {
+ convertView = layoutInflater.inflate(R.layout.item_group_list, parent, false);
+ groupHolder = new GroupViewHolder();
+ groupHolder.groupNameView = convertView.findViewById(R.id.groupNameView);
+ convertView.setTag(groupHolder);
+ } else {
+ groupHolder = (GroupViewHolder) convertView.getTag();
+ }
+ groupHolder.groupNameView.setText(groupData.get(groupPosition));
+ return convertView;
+ }
+
+ @Override
+ public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
+ ChildViewHolder itemHolder;
+ if (convertView == null) {
+ convertView = layoutInflater.inflate(R.layout.item_child_list, parent, false);
+ itemHolder = new ChildViewHolder();
+ itemHolder.childNameView = convertView.findViewById(R.id.childNameView);
+ itemHolder.childPhoneView = convertView.findViewById(R.id.childPhoneView);
+ convertView.setTag(itemHolder);
+ } else {
+ itemHolder = (ChildViewHolder) convertView.getTag();
+ }
+ itemHolder.childNameView.setText(childData.get(groupPosition).get(childPosition).getPersonName());
+ itemHolder.childPhoneView.setText(childData.get(groupPosition).get(childPosition).getPersonPhone());
+ return convertView;
+ }
+
+ //设置子列表是否可选中
+ @Override
+ public boolean isChildSelectable(int groupPosition, int childPosition) {
+ return true;
+ }
+
+ private static class GroupViewHolder {
+ private TextView groupNameView;
+ }
+
+ private static class ChildViewHolder {
+ private TextView childNameView;
+ private TextView childPhoneView;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/adapter/SwipeViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/SwipeViewAdapter.java
new file mode 100644
index 0000000..aa469ff
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/adapter/SwipeViewAdapter.java
@@ -0,0 +1,96 @@
+package com.casic.dcms.adapter;
+
+import android.content.Context;
+import android.graphics.Color;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.casic.dcms.R;
+import com.casic.dcms.bean.NoticeBean;
+import com.qmuiteam.qmui.recyclerView.QMUISwipeAction;
+import com.qmuiteam.qmui.recyclerView.QMUISwipeViewHolder;
+import com.qmuiteam.qmui.util.QMUIDisplayHelper;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 9:47
+ * @email : 290677893@qq.com
+ **/
+public class SwipeViewAdapter extends RecyclerView.Adapter {
+
+ private List mData = new ArrayList<>();
+ private final QMUISwipeAction mDeleteAction;
+
+ public SwipeViewAdapter(Context context) {
+ QMUISwipeAction.ActionBuilder builder = new QMUISwipeAction.ActionBuilder()
+ .textSize(QMUIDisplayHelper.sp2px(context, 18))
+ .textColor(Color.WHITE)
+ .paddingStartEnd(QMUIDisplayHelper.dp2px(context, 18));
+ mDeleteAction = builder.text("删除").backgroundColor(Color.RED).build();
+ }
+
+ public void setData(@Nullable List list) {
+ mData.clear();
+ if (list != null) {
+ mData.addAll(list);
+ }
+ notifyDataSetChanged();
+ }
+
+ public void remove(int pos) {
+ mData.remove(pos);
+ notifyItemRemoved(pos);
+ }
+
+ @NonNull
+ @Override
+ public QMUISwipeViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_notice_list, parent, false);
+ final QMUISwipeViewHolder swipeViewHolder = new QMUISwipeViewHolder(view);
+ swipeViewHolder.addSwipeAction(mDeleteAction);
+ return swipeViewHolder;
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull QMUISwipeViewHolder holder, int position) {
+ TextView noticeTitleView = holder.itemView.findViewById(R.id.noticeTitleView);
+ TextView noticeDateView = holder.itemView.findViewById(R.id.noticeDateView);
+ TextView noticeContentView = holder.itemView.findViewById(R.id.noticeContentView);
+
+ NoticeBean noticeBean = mData.get(position);
+ noticeTitleView.setText(noticeBean.getNoticeTitle());
+ noticeDateView.setText(noticeBean.getNoticeDate());
+ noticeContentView.setText(noticeBean.getNoticeContent());
+ holder.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ clickListener.onClick(position);
+ }
+ });
+ }
+
+ @Override
+ public int getItemCount() {
+ return mData.size();
+ }
+
+ private OnItemClickListener clickListener;
+
+ public interface OnItemClickListener {
+ void onClick(int position);
+ }
+
+ public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
+ this.clickListener = onItemClickListener;
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/bean/DeptTreeBean.java b/app/src/main/java/com/casic/dcms/bean/DeptTreeBean.java
new file mode 100644
index 0000000..7f0f079
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/DeptTreeBean.java
@@ -0,0 +1,153 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 12:46
+ * @email : 290677893@qq.com
+ **/
+public class DeptTreeBean {
+
+ /**
+ * code : 200.0
+ * data : {"list":[{"checked":false,"code":"","id":"1177026995528237058","name":"指挥中心","open":false,"pcodes":"","pid":"24","value":""}]}
+ * message : 请求成功
+ * success : true
+ */
+
+ private double code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ private List list;
+
+ public List getList() {
+ return list;
+ }
+
+ public void setList(List list) {
+ this.list = list;
+ }
+
+ public static class ListBean {
+ /**
+ * checked : false
+ * code :
+ * id : 1177026995528237058
+ * name : 指挥中心
+ * open : false
+ * pcodes :
+ * pid : 24
+ * value :
+ */
+
+ private boolean checked;
+ private String code;
+ private String id;
+ private String name;
+ private boolean open;
+ private String pcodes;
+ private String pid;
+ private String value;
+
+ public boolean isChecked() {
+ return checked;
+ }
+
+ public void setChecked(boolean checked) {
+ this.checked = checked;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public boolean isOpen() {
+ return open;
+ }
+
+ public void setOpen(boolean open) {
+ this.open = open;
+ }
+
+ public String getPcodes() {
+ return pcodes;
+ }
+
+ public void setPcodes(String pcodes) {
+ this.pcodes = pcodes;
+ }
+
+ public String getPid() {
+ return pid;
+ }
+
+ public void setPid(String pid) {
+ this.pid = pid;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/NoticeBean.java b/app/src/main/java/com/casic/dcms/bean/NoticeBean.java
new file mode 100644
index 0000000..e68d12e
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/NoticeBean.java
@@ -0,0 +1,45 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 10:03
+ * @email : 290677893@qq.com
+ **/
+public class NoticeBean {
+ private String noticeTitle;
+ private String noticeDate;
+ private String noticeContent;
+ private String senderName;
+
+ public String getNoticeTitle() {
+ return noticeTitle;
+ }
+
+ public void setNoticeTitle(String noticeTitle) {
+ this.noticeTitle = noticeTitle;
+ }
+
+ public String getNoticeDate() {
+ return noticeDate;
+ }
+
+ public void setNoticeDate(String noticeDate) {
+ this.noticeDate = noticeDate;
+ }
+
+ public String getNoticeContent() {
+ return noticeContent;
+ }
+
+ public void setNoticeContent(String noticeContent) {
+ this.noticeContent = noticeContent;
+ }
+
+ public String getSenderName() {
+ return senderName;
+ }
+
+ public void setSenderName(String senderName) {
+ this.senderName = senderName;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/PersonPhoneBean.java b/app/src/main/java/com/casic/dcms/bean/PersonPhoneBean.java
new file mode 100644
index 0000000..d6443ac
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/PersonPhoneBean.java
@@ -0,0 +1,27 @@
+package com.casic.dcms.bean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 13:00
+ * @email : 290677893@qq.com
+ **/
+public class PersonPhoneBean {
+ private String personName;
+ private String personPhone;
+
+ public String getPersonName() {
+ return personName;
+ }
+
+ public void setPersonName(String personName) {
+ this.personName = personName;
+ }
+
+ public String getPersonPhone() {
+ return personPhone;
+ }
+
+ public void setPersonPhone(String personPhone) {
+ this.personPhone = personPhone;
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/bean/PhoneBookBean.java b/app/src/main/java/com/casic/dcms/bean/PhoneBookBean.java
new file mode 100644
index 0000000..9242676
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/bean/PhoneBookBean.java
@@ -0,0 +1,131 @@
+package com.casic.dcms.bean;
+
+import java.util.List;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 11:34
+ * @email : 290677893@qq.com
+ **/
+public class PhoneBookBean {
+
+ /**
+ * code : 200.0
+ * data : [{"account":"sp_zhcg","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1206921310454312961","name":"中心视频","phone":""},{"account":"cgzbz","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177048865279356930","name":"值班长","phone":""},{"account":"pacr_dp","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1355036418525347842","name":"平安崇仁对接用户","phone":""},{"account":"cgzhz","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177049102999924737","name":"指挥长","phone":"18600202669"},{"account":"cgjd03","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1196382448976011266","name":"李斌","phone":""},{"account":"cgjd01","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177050541084160002","name":"王金龙","phone":"18600202669"},{"account":"cgsl01","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177050327115935746","name":"白雅茹","phone":""},{"account":"cgpq01","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177050762996396034","name":"艾闻","phone":""},{"account":"cgjd02","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1177050541084160013","name":"苗建峰","phone":""},{"account":"cgld","attr1":"","deptId":"1177026995528237058","deptName":"指挥中心","id":"1193696400776249345","name":"领导","phone":""}]
+ * message : 请求成功
+ * success : true
+ */
+
+ private double code;
+ private String message;
+ private boolean success;
+ private List data;
+
+ public double getCode() {
+ return code;
+ }
+
+ public void setCode(double code) {
+ this.code = code;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public static class DataBean {
+ /**
+ * account : sp_zhcg
+ * attr1 :
+ * deptId : 1177026995528237058
+ * deptName : 指挥中心
+ * id : 1206921310454312961
+ * name : 中心视频
+ * phone :
+ */
+
+ private String account;
+ private String attr1;
+ private String deptId;
+ private String deptName;
+ private String id;
+ private String name;
+ private String phone;
+
+ public String getAccount() {
+ return account;
+ }
+
+ public void setAccount(String account) {
+ this.account = account;
+ }
+
+ public String getAttr1() {
+ return attr1;
+ }
+
+ public void setAttr1(String attr1) {
+ this.attr1 = attr1;
+ }
+
+ public String getDeptId() {
+ return deptId;
+ }
+
+ public void setDeptId(String deptId) {
+ this.deptId = deptId;
+ }
+
+ public String getDeptName() {
+ return deptName;
+ }
+
+ public void setDeptName(String deptName) {
+ this.deptName = deptName;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/DeptTreeModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/DeptTreeModelImpl.java
new file mode 100644
index 0000000..c9af913
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/DeptTreeModelImpl.java
@@ -0,0 +1,58 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.DeptTreeBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 12:35
+ * @email : 290677893@qq.com
+ **/
+public class DeptTreeModelImpl implements IDeptTreeModel {
+
+ private OnGetDeptTreeListener listener;
+
+ public DeptTreeModelImpl(OnGetDeptTreeListener changedListener) {
+ this.listener = changedListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnGetDeptTreeListener {
+ void onSuccess(DeptTreeBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String pid) {
+ Observable observable = RetrofitServiceManager.getDeptTreeResult(pid);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(DeptTreeBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IDeptTreeModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IDeptTreeModel.java
new file mode 100644
index 0000000..ab1947c
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IDeptTreeModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IDeptTreeModel {
+ Subscription sendRetrofitRequest(String pid);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IPhoneBookModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IPhoneBookModel.java
new file mode 100644
index 0000000..9b3fa28
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IPhoneBookModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IPhoneBookModel {
+ Subscription sendRetrofitRequest(String deptid);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/PhoneBookModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/PhoneBookModelImpl.java
new file mode 100644
index 0000000..48247c2
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/PhoneBookModelImpl.java
@@ -0,0 +1,58 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.PhoneBookBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 11:21
+ * @email : 290677893@qq.com
+ **/
+public class PhoneBookModelImpl implements IPhoneBookModel {
+
+ private OnGetPhoneBookListener listener;
+
+ public PhoneBookModelImpl(OnGetPhoneBookListener bookListener) {
+ this.listener = bookListener;
+ }
+
+ /**
+ * 数据回调接口
+ */
+ public interface OnGetPhoneBookListener {
+ void onSuccess(PhoneBookBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String deptid) {
+ Observable observable = RetrofitServiceManager.getPhoneBookResult(deptid);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (listener != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(PhoneBookBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTreePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTreePresenterImpl.java
new file mode 100644
index 0000000..e010f1a
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTreePresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.DeptTreeBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.DeptTreeModelImpl;
+import com.casic.dcms.mvp.view.IDeptTreeView;
+
+public class DeptTreePresenterImpl extends BasePresenter implements IDeptTreePresenter, DeptTreeModelImpl.OnGetDeptTreeListener {
+
+ private IDeptTreeView view;
+ private DeptTreeModelImpl actionModel;
+
+ public DeptTreePresenterImpl(IDeptTreeView deptTreeView) {
+ this.view = deptTreeView;
+ actionModel = new DeptTreeModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String pid) {
+ addSubscription(actionModel.sendRetrofitRequest(pid));
+ }
+
+ @Override
+ public void onSuccess(DeptTreeBean resultBean) {
+ view.obtainDeptTreeResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IDeptTreePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IDeptTreePresenter.java
new file mode 100644
index 0000000..81e5e65
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IDeptTreePresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IDeptTreePresenter {
+ void onReadyRetrofitRequest(String pid);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IPhoneBookPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IPhoneBookPresenter.java
new file mode 100644
index 0000000..bb5fa97
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IPhoneBookPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IPhoneBookPresenter {
+ void onReadyRetrofitRequest(String deptid);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/PhoneBookPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/PhoneBookPresenterImpl.java
new file mode 100644
index 0000000..97dfe8e
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/PhoneBookPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.PhoneBookBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.PhoneBookModelImpl;
+import com.casic.dcms.mvp.view.IPhoneBookView;
+
+public class PhoneBookPresenterImpl extends BasePresenter implements IPhoneBookPresenter, PhoneBookModelImpl.OnGetPhoneBookListener {
+
+ private IPhoneBookView view;
+ private PhoneBookModelImpl actionModel;
+
+ public PhoneBookPresenterImpl(IPhoneBookView phoneBookView) {
+ this.view = phoneBookView;
+ actionModel = new PhoneBookModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String deptid) {
+ addSubscription(actionModel.sendRetrofitRequest(deptid));
+ }
+
+ @Override
+ public void onSuccess(PhoneBookBean resultBean) {
+ view.obtainPhoneBookResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IDeptTreeView.java b/app/src/main/java/com/casic/dcms/mvp/view/IDeptTreeView.java
new file mode 100644
index 0000000..805e0a5
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IDeptTreeView.java
@@ -0,0 +1,12 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.DeptTreeBean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 11:41
+ * @email : 290677893@qq.com
+ **/
+public interface IDeptTreeView {
+ void obtainDeptTreeResult(DeptTreeBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IPhoneBookView.java b/app/src/main/java/com/casic/dcms/mvp/view/IPhoneBookView.java
new file mode 100644
index 0000000..0b815d6
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IPhoneBookView.java
@@ -0,0 +1,12 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.PhoneBookBean;
+
+/**
+ * @author : Pengxh
+ * @time : 2021/4/15 11:17
+ * @email : 290677893@qq.com
+ **/
+public interface IPhoneBookView {
+ void obtainPhoneBookResult(PhoneBookBean resultBean);
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
index aa4100a..549b16a 100644
--- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java
@@ -118,9 +118,9 @@
@Override
protected void setupTopBarLayout() {
- caseTopLayout.setTitle("案卷上报").setTextColor(ContextCompat.getColor(this, R.color.black));
- caseTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.lightGray));
- caseTopLayout.addLeftImageButton(R.drawable.ic_left_black, 0).setOnClickListener(new View.OnClickListener() {
+ caseTopLayout.setTitle("案卷上报").setTextColor(ContextCompat.getColor(this, R.color.white));
+ caseTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor));
+ caseTopLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
@@ -517,7 +517,7 @@
if (largeClassBeans.size() == 0) {
caseLargeClassView.setText("无小类");
} else {
- caseLargeClassView.setText("请选择");
+ caseLargeClassView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个
}
caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
@@ -535,7 +535,7 @@
if (smallClassBeans.size() == 0) {
caseSmallClassView.setText("无小类");
} else {
- caseSmallClassView.setText("请选择");
+ caseSmallClassView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个
}
caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray));
}
diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java
index 5535f61..9b9b62b 100644
--- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java
@@ -9,7 +9,7 @@
import android.widget.EditText;
import com.casic.dcms.R;
-import com.casic.dcms.base.DoubleClickExitActivity;
+import com.casic.dcms.base.BaseActivity;
import com.casic.dcms.bean.LoginResultBean;
import com.casic.dcms.bean.PublicKeyBean;
import com.casic.dcms.mvp.presenter.AuthenticatePresenterImpl;
@@ -32,7 +32,7 @@
import butterknife.BindView;
import butterknife.OnClick;
-public class LoginActivity extends DoubleClickExitActivity implements View.OnClickListener, IAuthenticateView, ILoginView {
+public class LoginActivity extends BaseActivity implements View.OnClickListener, IAuthenticateView, ILoginView {
private static final String TAG = "LoginActivity";
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 7befe7c..54b3625 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -12,6 +12,7 @@
+
+
groupData = new ArrayList<>();
+ private List> childData = new ArrayList<>();
+ private LayoutInflater layoutInflater;
+
+ public DeptExpandableAdapter(Context mContext) {
+ layoutInflater = LayoutInflater.from(mContext);
+ }
+
+ public void setData(@Nullable List