From f348402ffdc0cfadbee0cf6ea2c18f0cc62399ee Mon Sep 17 00:00:00 2001 From: itgaojian163 Date: Wed, 26 Oct 2022 21:30:01 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/misc.xml | 5 + .../baselib/constant/PathConfig.java | 3 + .../baselib/core/retrofit_net/BaseUrlApi.java | 1 + commonmodule/src/main/AndroidManifest.xml | 13 +- .../journal/JournalDetailActivity.java | 165 +++++++++ .../journal/JournalListActivity.java | 280 ++++++++++++++++ .../adapters/JournalListAdapter.java | 84 +++++ .../commonmodule/beans/JournalListBean.java | 145 ++++++++ .../commonmodule/holders/JournalHolder.java | 29 ++ .../commonmodule/nets/CenterApis.java | 41 +++ .../res/layout/activity_journal_detail.xml | 158 +++++++++ .../main/res/layout/activity_journal_list.xml | 63 ++++ .../src/main/res/layout/item_journal_list.xml | 108 ++++++ .../fragments/LeaderMainFragment.java | 316 +++++++++--------- .../res/drawable-xhdpi/ic_journal_list.png | Bin 0 -> 1142 bytes 15 files changed, 1256 insertions(+), 155 deletions(-) create mode 100644 commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/journal/JournalDetailActivity.java create mode 100644 commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/journal/JournalListActivity.java create mode 100644 commonmodule/src/main/java/com/tengshisoft/commonmodule/adapters/JournalListAdapter.java create mode 100644 commonmodule/src/main/java/com/tengshisoft/commonmodule/beans/JournalListBean.java create mode 100644 commonmodule/src/main/java/com/tengshisoft/commonmodule/holders/JournalHolder.java create mode 100644 commonmodule/src/main/res/layout/activity_journal_detail.xml create mode 100644 commonmodule/src/main/res/layout/activity_journal_list.xml create mode 100644 commonmodule/src/main/res/layout/item_journal_list.xml create mode 100644 mainmodule/src/main/res/drawable-xhdpi/ic_journal_list.png diff --git a/.idea/misc.xml b/.idea/misc.xml index db472c1..b8f5cfe 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -8,7 +8,12 @@ diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/constant/PathConfig.java b/baselib/src/main/java/com/tenlionsoft/baselib/constant/PathConfig.java index 3364da8..0136447 100755 --- a/baselib/src/main/java/com/tenlionsoft/baselib/constant/PathConfig.java +++ b/baselib/src/main/java/com/tenlionsoft/baselib/constant/PathConfig.java @@ -186,6 +186,9 @@ public class PathConfig { public static final String PATH_MODULE_PLAYER_SIMPLE_VIDEO = "/moduleplayer/activity/simpleplayer";//单纯播放器 /*============================公共模块=============================*/ + public static final String PATH_MODULE_COMMON_ACTIVITY_JOURNAL_LIST = "/modulecommon/activity/journalList";//日志列表 + public static final String PATH_MODULE_COMMON_ACTIVITY_JOURNAL_DETAIL = "/modulecommon/activity/journalDetail";//日志详情 + public static final String PATH_MODULE_COMMON_ACTIVITY_ATTENDANCE = "/modulecommon/activity/attendance";//考勤 public static final String PATH_MODULE_COMMON_DEMO = "/modulecommon/activity/mapdemo";//地图测试 public static final String PATH_MODULE_COMMON_ACTIVITY_USER_CENTER = "/modulecommon/activity/userCenter";//用户中心activity diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/retrofit_net/BaseUrlApi.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/retrofit_net/BaseUrlApi.java index 197c9b2..234be0a 100755 --- a/baselib/src/main/java/com/tenlionsoft/baselib/core/retrofit_net/BaseUrlApi.java +++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/retrofit_net/BaseUrlApi.java @@ -21,6 +21,7 @@ public class BaseUrlApi { public static final String BASE_MAIN_IP = IP + SYS_USERCENTER; public static final String BASE_CASE_IP = IP + SYS_CASE; + public static final String BASE_CASE_LOCAL_IP="http://49.233.36.36:58099/case/"; public static final String BASE_LIBRARY_IP = IP + SYS_LIBRARY; public static final String BASE_TASK_IP = IP + SYS_TASK; public static final String BASE_PERSON_IP = IP + SYS_POPULATION; diff --git a/commonmodule/src/main/AndroidManifest.xml b/commonmodule/src/main/AndroidManifest.xml index 3ef330b..dde9455 100644 --- a/commonmodule/src/main/AndroidManifest.xml +++ b/commonmodule/src/main/AndroidManifest.xml @@ -3,7 +3,18 @@ package="com.tengshisoft.commonmodule"> - + + () { + @Override + public void onSubscribe(@NonNull Disposable d) { + + } + + @Override + public void onNext(JournalListBean.@NonNull RowsBean rowsDTO) { + setDataToView(rowsDTO); + } + + @Override + public void onError(@NonNull Throwable e) { + ExceptionHandler.handleException(e); + refreshView(STATE_LOAD_ERROR); + } + + @Override + public void onComplete() { + + } + }); + } + + private void setDataToView(JournalListBean.RowsBean rowsDTO) { + refreshView(STATE_LOAD_SUCCESS); + mTvTitle.setText(rowsDTO.getGridOgTitle()); + mTvDate.setText(rowsDTO.getGridLogDate()); + switch (rowsDTO.getGridLogLevel()) { + case "1": + mTvLevel.setText("日报"); + break; + case "2": + mTvLevel.setText("月报"); + break; + case "3": + mTvLevel.setText("年报"); + break; + } + mTvType.setText("1".equals(rowsDTO.getGridLogType()) ? "当天填报" : "以往补填"); + mTvContent.setText(rowsDTO.getGridLogContent()); + if (!TextUtils.isEmpty(rowsDTO.getGridLogImage())) { + //有图片 + mRlvPhotos.setVisibility(View.VISIBLE); + String[] doorIds = rowsDTO.getGridLogImage().split(","); + ArrayList paths = new ArrayList<>(); + BaseShowPhotoAdapter mAdapter = new BaseShowPhotoAdapter(mActivity, paths); + mRlvPhotos.setLayoutManager(new GridLayoutManager(mActivity, 4)); + mRlvPhotos.setAdapter(mAdapter); + mAdapter.setOnItemClickListener((data, pos) -> ARouter.getInstance() + .build(PathConfig.PATH_MODULE_BASELIB_SHOW_IMG) + .withStringArrayList("imgUrls", paths) + .withInt("curItem", pos) + .navigation()); + for (String doorId : doorIds) { + if (!TextUtils.isEmpty(doorId)) { + paths.add(BaseUrlApi.BASE_IMG_URL + doorId); + } + } + mAdapter.setData(paths); + } else { + //没有图片 + mRlvPhotos.setVisibility(View.GONE); + } + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (resultCode == RESULT_OK) { + if (requestCode == 12) { + refreshView(STATE_LOAD_LOADING); + getDetailData(); + } + } + } + + @Override + protected void doSearchByTitle() { + + } + + @Override + protected void clearSearch() { + + } +} \ No newline at end of file diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/journal/JournalListActivity.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/journal/JournalListActivity.java new file mode 100644 index 0000000..a8cdec1 --- /dev/null +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/journal/JournalListActivity.java @@ -0,0 +1,280 @@ +package com.tengshisoft.commonmodule.activitys.journal; + +import android.app.ProgressDialog; +import android.graphics.Color; +import android.text.TextUtils; +import android.view.View; +import android.view.inputmethod.EditorInfo; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.ProgressBar; +import android.widget.TextView; + +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.alibaba.android.arouter.facade.annotation.Route; +import com.alibaba.android.arouter.launcher.ARouter; +import com.gyf.immersionbar.ImmersionBar; +import com.hjq.toast.ToastUtils; +import com.scwang.smart.refresh.layout.SmartRefreshLayout; +import com.tengshisoft.commonmodule.R; +import com.tengshisoft.commonmodule.R2; +import com.tengshisoft.commonmodule.adapters.JournalListAdapter; +import com.tengshisoft.commonmodule.beans.JournalListBean; +import com.tengshisoft.commonmodule.nets.CenterApis; +import com.tenlionsoft.baselib.constant.PathConfig; +import com.tenlionsoft.baselib.core.retrofit_net.RetrofitManager; +import com.tenlionsoft.baselib.core.widget.base.BaseActivity; +import com.tenlionsoft.baselib.core.widget.views.ItemSplitDivider; +import com.tenlionsoft.baselib.utils.ExceptionHandler; +import com.tenlionsoft.baselib.utils.UIUtil; +import com.tenlionsoft.baselib.utils.UserLgUtils; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.ButterKnife; +import butterknife.Unbinder; +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; +import io.reactivex.rxjava3.annotations.NonNull; +import io.reactivex.rxjava3.core.Observer; +import io.reactivex.rxjava3.disposables.Disposable; +import io.reactivex.rxjava3.schedulers.Schedulers; + +/** + * 日志列表 + */ +@Route(path = PathConfig.PATH_MODULE_COMMON_ACTIVITY_JOURNAL_LIST) +public class JournalListActivity extends BaseActivity { + @BindView(R2.id.rlv_components) + RecyclerView mRlvComponents; + @BindView(R2.id.srl_content) + SmartRefreshLayout mSrlContent; + @BindView(R2.id.pb_loading) + ProgressBar mPbLoading; + @BindView(R2.id.iv_empty_data) + ImageView mIvEmptyData; + @BindView(R2.id.tv_error_hint) + TextView mTvErrorHint; + @BindView(R2.id.et_search_key) + EditText mEtSearchKey; + private Unbinder mBind; + private List mDatas; + private JournalListAdapter mAdapter; + private int mCurrentPage = 1; + private String mKeywords = ""; + + private ProgressDialog mDialog; + private int mSearchDelay = 600; + + @Override + protected int setLayoutId() { + return R.layout.activity_journal_list; + } + + @Override + public void initData() { + ButterKnife.bind(this); + mTvBaseTitle.setText("工作日志"); + ImmersionBar.with(mActivity) + .statusBarColor("#FFFFFF") + .statusBarDarkFont(true) + .titleBar(mRlTitleBar) + .init(); + mTvBaseTitle.setTextColor(Color.BLACK); + mRlTitleBar.setBackgroundColor(getResources().getColor(R.color.white)); + mIvAppSearchIcon.setVisibility(View.GONE); + mTvAppBack.setBackgroundResource(R.drawable.ic_back_black); + + refreshView(STATE_LOAD_SUCCESS); + mIvAppSearchIcon.setVisibility(View.VISIBLE); + mDatas = new ArrayList<>(); + mAdapter = new JournalListAdapter(mActivity, mDatas); + mRlvComponents.setLayoutManager(new LinearLayoutManager(mActivity)); + mRlvComponents.setAdapter(mAdapter); + mRlvComponents.addItemDecoration(new ItemSplitDivider(mActivity, LinearLayoutManager.VERTICAL, 1, Color.parseColor("#BFBFBF"))); + mSrlContent.setOnRefreshListener(v -> doRefresh()); + mSrlContent.setOnLoadMoreListener(v -> doLoadMore()); + setStateView(13); + + mAdapter.addOnItemClickListener(v -> ARouter.getInstance() + .build(PathConfig.PATH_MODULE_COMMON_ACTIVITY_JOURNAL_DETAIL) + .withString("id", v.getGridLogId()) + .navigation()); + mDialog = UIUtil.initDialog(mActivity, "搜索中..."); + doRefresh(); + mEtSearchKey.setOnEditorActionListener((v, actionId, event) -> { + if (actionId == EditorInfo.IME_ACTION_SEARCH) { + hideSoftKeyboard(); + mEtSearchKey.clearFocus(); + mKeywords = v.getText().toString(); + mDialog.show(); + doRefresh(); + return true; + } else { + return false; + } + }); + } + + + /** + * 获取片区内的部件列表 + */ + private void getGridListArea(int currentPage) { + mCurrentPage = currentPage; + RetrofitManager.getInstance() + .create(CenterApis.class) + .getGridLogListArea(mKeywords, mCurrentPage + "", UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(@NonNull Disposable d) { + + } + + @Override + public void onNext(@NonNull JournalListBean communityListBean) { + if (mDialog != null && mDialog.isShowing()) { + mDialog.dismiss(); + } + if (communityListBean.getRows() != null && communityListBean.getRows().size() > 0) { + ++mCurrentPage; + if (currentPage == 1) { + mDatas.clear(); + mDatas.addAll(communityListBean.getRows()); + } else { + mDatas.addAll(communityListBean.getRows()); + } + setStateView(14); + mAdapter.notifyDataSetChanged(); + mSrlContent.finishRefresh(); + if (mDatas.size() >= communityListBean.getTotal()) { + mSrlContent.finishLoadMore(); + mSrlContent.setNoMoreData(true); + } else { + mSrlContent.finishLoadMore(); + mSrlContent.setNoMoreData(false); + } + } else { + if (currentPage > 1) { + mSrlContent.finishLoadMore(); + mSrlContent.setNoMoreData(true); + setStateView(14); + } else { + if (TextUtils.isEmpty(mKeywords)) { + //无数据 + setStateView(15); + } else { + setStateView(15); + ToastUtils.show("未查询到相关内容"); + } + } + } + } + + @Override + public void onError(@NonNull Throwable e) { + if (mDialog != null && mDialog.isShowing()) { + mDialog.dismiss(); + } + mSrlContent.finishLoadMore(); + mSrlContent.finishRefresh(); + ExceptionHandler.handleException(e); + setStateView(16); + } + + @Override + public void onComplete() { + + } + }); + + } + + + /** + * + */ + private void doSearch() { + String searchContent = mEtAppSearchContent.getText().toString().trim(); + if (!TextUtils.isEmpty(searchContent)) { + hideSoftKeyboard(); + setStateView(13); + mKeywords = searchContent; + mCurrentPage = 1; + getGridListArea(mCurrentPage); + } else { + ToastUtils.show("请输入要查询的内容"); + } + } + + @Override + protected void clearSearch() { + mKeywords = ""; + doRefresh(); + } + + //加载更多 + private void doLoadMore() { + getGridListArea(mCurrentPage); + } + + //刷新 + private void doRefresh() { + mDatas.clear(); + mAdapter.setData(mDatas); + getGridListArea(1); + } + + /** + * 根据状态显示 + * 12 默认 + * 13 搜索中 + * 14 搜索完成有数据 + * 15 搜索完成没有数据 + * 16 搜索失败 + * + * @param state + */ + private void setStateView(int state) { + switch (state) { + case 12://默认 + case 15: + mPbLoading.setVisibility(View.GONE); + mSrlContent.setVisibility(View.GONE); + mIvEmptyData.setVisibility(View.VISIBLE); + mTvErrorHint.setVisibility(View.VISIBLE); + mTvErrorHint.setText("暂无数据"); + break; + case 13://搜索中 + mPbLoading.setVisibility(View.VISIBLE); + mSrlContent.setVisibility(View.GONE); + mIvEmptyData.setVisibility(View.GONE); + mTvErrorHint.setVisibility(View.VISIBLE); + mTvErrorHint.setText("加载中..."); + break; + case 14://搜索完成有数据 + mPbLoading.setVisibility(View.GONE); + mSrlContent.setVisibility(View.VISIBLE); + mIvEmptyData.setVisibility(View.GONE); + mTvErrorHint.setVisibility(View.GONE); + break; + case 16://搜索失败 + mPbLoading.setVisibility(View.GONE); + mSrlContent.setVisibility(View.GONE); + mIvEmptyData.setVisibility(View.VISIBLE); + mTvErrorHint.setVisibility(View.VISIBLE); + mTvErrorHint.setText("加载失败,请稍后重试"); + break; + } + } + + @Override + protected void doSearchByTitle() { + + } +} \ No newline at end of file diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/adapters/JournalListAdapter.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/adapters/JournalListAdapter.java new file mode 100644 index 0000000..1b02f49 --- /dev/null +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/adapters/JournalListAdapter.java @@ -0,0 +1,84 @@ +package com.tengshisoft.commonmodule.adapters; + +import android.content.Context; +import android.text.TextUtils; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import com.bumptech.glide.Glide; +import com.tengshisoft.commonmodule.R; +import com.tengshisoft.commonmodule.beans.JournalListBean; +import com.tengshisoft.commonmodule.beans.PenalListBean; +import com.tengshisoft.commonmodule.holders.JournalHolder; +import com.tenlionsoft.baselib.core.retrofit_net.BaseUrlApi; +import com.tenlionsoft.baselib.core.widget.base.BaseRecyclerAdapter; + +import java.util.List; + +/** + * 作者: adam + * 日期: 2021/9/26 - 3:01 下午 + * 邮箱: itgaojian@163.com + * 描述: 日志列表 + */ +public class JournalListAdapter extends BaseRecyclerAdapter { + + public JournalListAdapter(Context ctx, List list) { + super(ctx, list); + } + + @Override + public JournalHolder createHolder(ViewGroup parent, int viewType) { + View itemView = LayoutInflater.from(mContext).inflate(R.layout.item_journal_list, parent, false); + return new JournalHolder(itemView); + } + + @Override + public void bindHolder(JournalHolder holder, int i) { + + JournalListBean.RowsBean bean = mData.get(i); + holder.mTvTitle.setText(bean.getGridOgTitle()); + holder.mTvContent.setText(bean.getGridLogContent()); + holder.mTvTime.setText(bean.getGridLogDate()); + holder.mTvName.setText(bean.getCreatorName()); + switch (bean.getGridLogLevel()) { + case "1": + holder.mTvLevel.setText("日报"); + break; + case "2": + holder.mTvLevel.setText("月报"); + break; + case "3": + holder.mTvLevel.setText("年报"); + break; + } + if (!TextUtils.isEmpty(bean.getGridLogImage())) { + String[] split = bean.getGridLogImage().split(","); + String s = BaseUrlApi.BASE_IMG_URL + split[0]; + Glide.with(mContext) + .load(s) + .apply(options) + .into(holder.mIvPic); + } else { + Glide.with(mContext) + .load(R.drawable.ic_default_img_icon) + .apply(options) + .into(holder.mIvPic); + } + } + + private OnEditOrDel mPatrolListener; + + public void addOnPatrolListener(OnEditOrDel listener) { + this.mPatrolListener = listener; + } + + + public interface OnEditOrDel { + void onEdit(PenalListBean.RowsBean bean, int pos); + + void onDel(PenalListBean.RowsBean bean, int pos); + } + +} diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/beans/JournalListBean.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/beans/JournalListBean.java new file mode 100644 index 0000000..c3af296 --- /dev/null +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/beans/JournalListBean.java @@ -0,0 +1,145 @@ +package com.tengshisoft.commonmodule.beans; + +import java.util.List; + +public class JournalListBean { + + private int page; + private List rows; + private int total; + + public int getPage() { + return page; + } + + public void setPage(int page) { + this.page = page; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public static class RowsBean { + private String creator; + private String creatorName; + private String gmtCreate; + private String gridLogContent; + private String gridLogDate; + private String gridLogId; + private String gridLogImage; + private String gridLogLevel; + private String gridLogType; + private String gridLogUserAreaCode; + private String gridLogUserAreaName; + private String gridOgTitle; + + public String getCreator() { + return creator; + } + + public void setCreator(String creator) { + this.creator = creator; + } + + public String getCreatorName() { + return creatorName; + } + + public void setCreatorName(String creatorName) { + this.creatorName = creatorName; + } + + public String getGmtCreate() { + return gmtCreate; + } + + public void setGmtCreate(String gmtCreate) { + this.gmtCreate = gmtCreate; + } + + public String getGridLogContent() { + return gridLogContent; + } + + public void setGridLogContent(String gridLogContent) { + this.gridLogContent = gridLogContent; + } + + public String getGridLogDate() { + return gridLogDate; + } + + public void setGridLogDate(String gridLogDate) { + this.gridLogDate = gridLogDate; + } + + public String getGridLogId() { + return gridLogId; + } + + public void setGridLogId(String gridLogId) { + this.gridLogId = gridLogId; + } + + public String getGridLogImage() { + return gridLogImage; + } + + public void setGridLogImage(String gridLogImage) { + this.gridLogImage = gridLogImage; + } + + public String getGridLogLevel() { + return gridLogLevel; + } + + public void setGridLogLevel(String gridLogLevel) { + this.gridLogLevel = gridLogLevel; + } + + public String getGridLogType() { + return gridLogType; + } + + public void setGridLogType(String gridLogType) { + this.gridLogType = gridLogType; + } + + public String getGridLogUserAreaCode() { + return gridLogUserAreaCode; + } + + public void setGridLogUserAreaCode(String gridLogUserAreaCode) { + this.gridLogUserAreaCode = gridLogUserAreaCode; + } + + public String getGridLogUserAreaName() { + return gridLogUserAreaName; + } + + public void setGridLogUserAreaName(String gridLogUserAreaName) { + this.gridLogUserAreaName = gridLogUserAreaName; + } + + public String getGridOgTitle() { + return gridOgTitle; + } + + public void setGridOgTitle(String gridOgTitle) { + this.gridOgTitle = gridOgTitle; + } + } +} diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/holders/JournalHolder.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/holders/JournalHolder.java new file mode 100644 index 0000000..ae6e37f --- /dev/null +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/holders/JournalHolder.java @@ -0,0 +1,29 @@ +package com.tengshisoft.commonmodule.holders; + +import android.view.View; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.tengshisoft.commonmodule.R; + +public class JournalHolder extends RecyclerView.ViewHolder { + public ImageView mIvPic; + public TextView mTvContent; + public TextView mTvTime; + public TextView mTvTitle; + public TextView mTvLevel; + public TextView mTvName; + + public JournalHolder(@NonNull View itemView) { + super(itemView); + mIvPic = itemView.findViewById(R.id.iv_pic); + mTvContent = itemView.findViewById(R.id.tv_content); + mTvTime = itemView.findViewById(R.id.tv_time); + mTvTitle = itemView.findViewById(R.id.tv_title); + mTvLevel = itemView.findViewById(R.id.tv_level); + mTvName = itemView.findViewById(R.id.tv_name); + } +} diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/nets/CenterApis.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/nets/CenterApis.java index 2b5591e..f483840 100644 --- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/nets/CenterApis.java +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/nets/CenterApis.java @@ -13,6 +13,7 @@ import com.tengshisoft.commonmodule.beans.IncidentDeferListBean; import com.tengshisoft.commonmodule.beans.IncidentListBean; import com.tengshisoft.commonmodule.beans.IncidentMineOverseeListBean; import com.tengshisoft.commonmodule.beans.IncidentOverseeDetailBean; +import com.tengshisoft.commonmodule.beans.JournalListBean; import com.tengshisoft.commonmodule.beans.KnowAskDetailBean; import com.tengshisoft.commonmodule.beans.KnowAskListBean; import com.tengshisoft.commonmodule.beans.KnowReportDetailBean; @@ -307,4 +308,44 @@ public interface CenterApis { @Headers({"base_url_name:library", "Content-Type: application/json", "Accept: application/json"}) @PUT("app/knowledge-report/update-report/{knowledgeId}") Observable doEditKnowReport(@Path("knowledgeId") String id, @Body RequestBody body, @Header("token") String token); + + + /*===========日志=========*/ + + // 上报日志 + @Headers({"base_url_name:case", "Content-Type: application/json", "Accept: application/json"}) + @POST("app/gridlog/save") + Observable doSaveGridLog(@Body RequestBody body, @Header("token") String token); + + //修改日志 + @Headers({"base_url_name:case", "Content-Type: application/json", "Accept: application/json"}) + @PUT("app/gridlog/update/{gridLogId}") + Observable doEditGridLog(@Path("gridLogId") String id, @Body RequestBody body, @Header("token") String token); + + //我的上报日志 + @Headers({"base_url_name:case", "Content-Type: application/json", "Accept: application/json"}) + @GET("app/gridlog/listpage") + Observable getGridLogList(@Query("gridLogDateStart") String start, + @Query("gridLogDateEnd") String end, + @Query("rows") String rows, + @Header("token") String token); + + //日志详情 + @Headers({"base_url_name:case", "Content-Type: application/json", "Accept: application/json"}) + @GET("app/gridlog/get/{gridLogId}") + Observable getGridLogDetail(@Path("gridLogId") String id, @Header("token") String token); + + /** + * 删除汽车 + */ + @Headers({"base_url_name:usercenter", "Content-Type: application/json", "Accept: application/json"}) + @DELETE("app/car/remove/{ids}") + Observable doDelGridLog(@Path("ids") String id, @Header("token") String token); + + //区域上报日志列表 + @Headers({"base_url_name:case", "Content-Type: application/json", "Accept: application/json"}) + @GET("app/gridlog/listpage-area") + Observable getGridLogListArea(@Query("keywords") String key, + @Query("page") String page, + @Header("token") String token); } diff --git a/commonmodule/src/main/res/layout/activity_journal_detail.xml b/commonmodule/src/main/res/layout/activity_journal_detail.xml new file mode 100644 index 0000000..f2bc785 --- /dev/null +++ b/commonmodule/src/main/res/layout/activity_journal_detail.xml @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/commonmodule/src/main/res/layout/activity_journal_list.xml b/commonmodule/src/main/res/layout/activity_journal_list.xml new file mode 100644 index 0000000..cac39dd --- /dev/null +++ b/commonmodule/src/main/res/layout/activity_journal_list.xml @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/commonmodule/src/main/res/layout/item_journal_list.xml b/commonmodule/src/main/res/layout/item_journal_list.xml new file mode 100644 index 0000000..1d14965 --- /dev/null +++ b/commonmodule/src/main/res/layout/item_journal_list.xml @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mainmodule/src/main/java/com/tengshisoft/mainmodule/fragments/LeaderMainFragment.java b/mainmodule/src/main/java/com/tengshisoft/mainmodule/fragments/LeaderMainFragment.java index 35617da..3eb17fc 100755 --- a/mainmodule/src/main/java/com/tengshisoft/mainmodule/fragments/LeaderMainFragment.java +++ b/mainmodule/src/main/java/com/tengshisoft/mainmodule/fragments/LeaderMainFragment.java @@ -7,6 +7,11 @@ import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + import com.alibaba.android.arouter.facade.annotation.Route; import com.alibaba.android.arouter.launcher.ARouter; import com.tengshisoft.commonmodule.adapters.KnowLedgeListAdapter; @@ -36,10 +41,6 @@ import org.json.JSONObject; import java.util.ArrayList; import java.util.List; -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.GridLayoutManager; -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.RecyclerView; import butterknife.BindView; import butterknife.ButterKnife; import butterknife.Unbinder; @@ -82,18 +83,20 @@ public class LeaderMainFragment extends BaseFragment { private Unbinder mBind; private List mFuncs = new ArrayList<>(); private String[] mBtnStrs = new String[]{ - "事件派遣", - "超时预警事件", - "督办消息", - "归档事件", - "通讯录", + "事件派遣", + "超时预警事件", + "督办消息", + "归档事件", + "通讯录", + "工作日志", }; private int[] mBtnIds = new int[]{ - R.drawable.ic_incident_accept_icon, - R.drawable.ic_early_icon, - R.drawable.ic_supervise_icon, - R.drawable.ic_file_icon, - R.drawable.ic_list_contact}; + R.drawable.ic_incident_accept_icon, + R.drawable.ic_early_icon, + R.drawable.ic_supervise_icon, + R.drawable.ic_file_icon, + R.drawable.ic_list_contact, + R.drawable.ic_journal_list}; private FunctionTitleNumAdapter mNumAdapter; private Disposable mDisposable; private List mDatas; @@ -125,44 +128,44 @@ public class LeaderMainFragment extends BaseFragment { */ private void getKnowList() { RetrofitManager.getInstance() - .create(GridApis.class) - .getLibraryList("", "", "", "1", "1", UserLgUtils.getToken()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(@NonNull Disposable d) { + .create(GridApis.class) + .getLibraryList("", "", "", "1", "1", UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(@NonNull Disposable d) { - } + } - @Override - public void onNext(@NonNull KnowLedgeListBean knowLedgeListBean) { - if (knowLedgeListBean.getRows() != null && knowLedgeListBean.getRows().size() > 0) { - if (knowLedgeListBean.getRows().size() > 5) { - mDatas = knowLedgeListBean.getRows().subList(0, 5); + @Override + public void onNext(@NonNull KnowLedgeListBean knowLedgeListBean) { + if (knowLedgeListBean.getRows() != null && knowLedgeListBean.getRows().size() > 0) { + if (knowLedgeListBean.getRows().size() > 5) { + mDatas = knowLedgeListBean.getRows().subList(0, 5); + } else { + mDatas.addAll(knowLedgeListBean.getRows()); + } + mKnowLedgeListAdapter.setData(mDatas); + mRlvKnowledge.setVisibility(View.VISIBLE); + mLlKnowHint.setVisibility(View.GONE); } else { - mDatas.addAll(knowLedgeListBean.getRows()); + mRlvKnowledge.setVisibility(View.GONE); + mLlKnowHint.setVisibility(View.VISIBLE); } - mKnowLedgeListAdapter.setData(mDatas); - mRlvKnowledge.setVisibility(View.VISIBLE); - mLlKnowHint.setVisibility(View.GONE); - } else { + } + + @Override + public void onError(@NonNull Throwable e) { mRlvKnowledge.setVisibility(View.GONE); mLlKnowHint.setVisibility(View.VISIBLE); } - } - @Override - public void onError(@NonNull Throwable e) { - mRlvKnowledge.setVisibility(View.GONE); - mLlKnowHint.setVisibility(View.VISIBLE); - } + @Override + public void onComplete() { - @Override - public void onComplete() { - - } - }); + } + }); } @Override @@ -184,113 +187,113 @@ public class LeaderMainFragment extends BaseFragment { mNumAdapter.setData(mFuncs); Observable timeOutCount = RetrofitManager.getInstance() - .create(CenterApis.class) - .getCenterIncidentTimeOutCount(UserLgUtils.getUserAreaCode(), UserLgUtils.getToken()) - .compose(RxTransformer.getTransformer()); + .create(CenterApis.class) + .getCenterIncidentTimeOutCount(UserLgUtils.getUserAreaCode(), UserLgUtils.getToken()) + .compose(RxTransformer.getTransformer()); Observable earlyWarnCount = RetrofitManager.getInstance() - .create(CenterApis.class) - .getCenterIncidentEarlyWarnCount(UserLgUtils.getUserAreaCode(), UserLgUtils.getToken()) - .compose(RxTransformer.getTransformer()); + .create(CenterApis.class) + .getCenterIncidentEarlyWarnCount(UserLgUtils.getUserAreaCode(), UserLgUtils.getToken()) + .compose(RxTransformer.getTransformer()); Observable incidentCount = RetrofitManager.getInstance() - .create(CenterApis.class) - .getIncidentCount(UserLgUtils.getToken()) - .compose(RxTransformer.getTransformer()); + .create(CenterApis.class) + .getIncidentCount(UserLgUtils.getToken()) + .compose(RxTransformer.getTransformer()); Observable compose = RetrofitManager.getInstance() - .create(CenterApis.class) - .getIncidentByOverseeList("", "1", UserLgUtils.getToken()) - .compose(RxTransformer.getTransformer());//督办消息 + .create(CenterApis.class) + .getIncidentByOverseeList("", "1", UserLgUtils.getToken()) + .compose(RxTransformer.getTransformer());//督办消息 Observable.mergeDelayError(timeOutCount, earlyWarnCount, incidentCount, compose) - .compose(RxTransformer.getTransformer()) - .subscribe(new Observer() { - @Override - public void onSubscribe(@NonNull Disposable d) { - mDisposable = d; - } + .compose(RxTransformer.getTransformer()) + .subscribe(new Observer() { + @Override + public void onSubscribe(@NonNull Disposable d) { + mDisposable = d; + } - @Override - public void onNext(@NonNull Object o) { - if (o instanceof IncidentCountBean) { - IncidentCountBean incidentCountBean = (IncidentCountBean) o; - if (incidentCountBean.getData() != null && incidentCountBean.getData().size() > 0) { - List data = incidentCountBean.getData(); - for (int i = 0; i < data.size(); i++) { - IncidentCountBean.DataBean dataBean = data.get(i); - for (int j = 0; j < mFuncs.size(); j++) { - if ("TASK_ACCEPT".equals(dataBean.getType())) { - //事件受理数量 - if (dataBean.getNum() > 0) { - mTvAcceptNum.setVisibility(View.VISIBLE); - } else { - mTvAcceptNum.setVisibility(View.GONE); + @Override + public void onNext(@NonNull Object o) { + if (o instanceof IncidentCountBean) { + IncidentCountBean incidentCountBean = (IncidentCountBean) o; + if (incidentCountBean.getData() != null && incidentCountBean.getData().size() > 0) { + List data = incidentCountBean.getData(); + for (int i = 0; i < data.size(); i++) { + IncidentCountBean.DataBean dataBean = data.get(i); + for (int j = 0; j < mFuncs.size(); j++) { + if ("TASK_ACCEPT".equals(dataBean.getType())) { + //事件受理数量 + if (dataBean.getNum() > 0) { + mTvAcceptNum.setVisibility(View.VISIBLE); + } else { + mTvAcceptNum.setVisibility(View.GONE); + } + if (dataBean.getNum() > 99) { + mTvAcceptNum.setText("99+"); + } else { + mTvAcceptNum.setText(dataBean.getNum() + ""); + } } - if (dataBean.getNum() > 99) { - mTvAcceptNum.setText("99+"); - } else { - mTvAcceptNum.setText(dataBean.getNum() + ""); + if ("TASK_RESULT_EXAMINE".equals(dataBean.getType())) { + //事件受理数量 + if (dataBean.getNum() > 0) { + mTvRecheckNum.setVisibility(View.VISIBLE); + } else { + mTvRecheckNum.setVisibility(View.GONE); + } + if (dataBean.getNum() > 99) { + mTvRecheckNum.setText("99+"); + } else { + mTvRecheckNum.setText(dataBean.getNum() + ""); + } + } + if (mFuncs.get(j).getType().equals(dataBean.getType())) { + mFuncs.get(j).setHintNum(dataBean.getNum()); + break; } } - if ("TASK_RESULT_EXAMINE".equals(dataBean.getType())) { - //事件受理数量 - if (dataBean.getNum() > 0) { - mTvRecheckNum.setVisibility(View.VISIBLE); - } else { - mTvRecheckNum.setVisibility(View.GONE); - } - if (dataBean.getNum() > 99) { - mTvRecheckNum.setText("99+"); - } else { - mTvRecheckNum.setText(dataBean.getNum() + ""); - } - } - if (mFuncs.get(j).getType().equals(dataBean.getType())) { - mFuncs.get(j).setHintNum(dataBean.getNum()); - break; - } + } + mNumAdapter.setData(mFuncs); + } + } else if (o instanceof IncidentCenterTimeOutCount) { + for (int i = 0; i < mFuncs.size(); i++) { + if ("超时预警事件".equals(mFuncs.get(i).getText())) { + IncidentCenterTimeOutCount bea = (IncidentCenterTimeOutCount) o; + mFuncs.get(i).setHintNum(mFuncs.get(i).getHintNum() + bea.getData()); + break; } } mNumAdapter.setData(mFuncs); - } - } else if (o instanceof IncidentCenterTimeOutCount) { - for (int i = 0; i < mFuncs.size(); i++) { - if ("超时预警事件".equals(mFuncs.get(i).getText())) { - IncidentCenterTimeOutCount bea = (IncidentCenterTimeOutCount) o; - mFuncs.get(i).setHintNum(mFuncs.get(i).getHintNum() + bea.getData()); - break; + } else if (o instanceof IncidentCenterEarlyWarnCount) { + for (int i = 0; i < mFuncs.size(); i++) { + if ("超时预警事件".equals(mFuncs.get(i).getText())) { + IncidentCenterEarlyWarnCount bea = (IncidentCenterEarlyWarnCount) o; + mFuncs.get(i).setHintNum(mFuncs.get(i).getHintNum() + bea.getData()); + break; + } } - } - mNumAdapter.setData(mFuncs); - } else if (o instanceof IncidentCenterEarlyWarnCount) { - for (int i = 0; i < mFuncs.size(); i++) { - if ("超时预警事件".equals(mFuncs.get(i).getText())) { - IncidentCenterEarlyWarnCount bea = (IncidentCenterEarlyWarnCount) o; - mFuncs.get(i).setHintNum(mFuncs.get(i).getHintNum() + bea.getData()); - break; + mNumAdapter.setData(mFuncs); + } else if (o instanceof IncidentByOverseeListBean) { + IncidentByOverseeListBean bean = (IncidentByOverseeListBean) o; + if (bean.getTotal() > 99) { + mTvHint2.setText("99+"); + } else { + mTvHint2.setText(bean.getTotal() + ""); } } - mNumAdapter.setData(mFuncs); - } else if (o instanceof IncidentByOverseeListBean) { - IncidentByOverseeListBean bean = (IncidentByOverseeListBean) o; - if (bean.getTotal() > 99) { - mTvHint2.setText("99+"); - } else { - mTvHint2.setText(bean.getTotal() + ""); - } } - } - @Override - public void onError(@NonNull Throwable e) { + @Override + public void onError(@NonNull Throwable e) { - } + } - @Override - public void onComplete() { + @Override + public void onComplete() { - } - }); + } + }); } /** @@ -299,18 +302,18 @@ public class LeaderMainFragment extends BaseFragment { private void initContentView() { mTvHint2.setText("0"); mRlSupervise.setOnClickListener(v -> ARouter.getInstance() - .build(PathConfig.PATH_MODULE_COMMON_ACTIVITY_INCIDENT_OVERSEE) - .navigation()); + .build(PathConfig.PATH_MODULE_COMMON_ACTIVITY_INCIDENT_OVERSEE) + .navigation()); mLlAccept.setOnClickListener(v -> ARouter.getInstance() - .build(PathConfig.PATH_MODULE_COMMAND_ACTIVITY_INCIDENT_ACCEPT_LIST) - .navigation());//事件受理 + .build(PathConfig.PATH_MODULE_COMMAND_ACTIVITY_INCIDENT_ACCEPT_LIST) + .navigation());//事件受理 mLlRecheck.setOnClickListener(v -> ARouter.getInstance() - .build(PathConfig.PATH_MODULE_COMMON_ACTIVITY_INCIDENT_CENTER_CHECK) - .navigation());//事件核查 + .build(PathConfig.PATH_MODULE_COMMON_ACTIVITY_INCIDENT_CENTER_CHECK) + .navigation());//事件核查 mLlKnowledge.setOnClickListener(v -> ARouter.getInstance() - .build(PathConfig.PATH_MODULE_COMMON_ACTIVITY_KNOWLEDGE_LIBRARY_LIST) - .withString("type", "center") - .navigation());//知识库 + .build(PathConfig.PATH_MODULE_COMMON_ACTIVITY_KNOWLEDGE_LIBRARY_LIST) + .withString("type", "center") + .navigation());//知识库 for (int i = 0; i < mBtnStrs.length; i++) { FuncBean bean = new FuncBean(); bean.setText(mBtnStrs[i]); @@ -340,9 +343,9 @@ public class LeaderMainFragment extends BaseFragment { mKnowLedgeListAdapter = new KnowLedgeListAdapter(mActivity, mDatas, 1); mKnowLedgeListAdapter.addOnItemClickListener(v -> ARouter.getInstance() - .build(PathConfig.PATH_MODULE_COMMON_ACTIVITY_KNOWLEDGE_LIBRARY_DETAIL) - .withString("id", v.getKnowledgeId()) - .navigation()); + .build(PathConfig.PATH_MODULE_COMMON_ACTIVITY_KNOWLEDGE_LIBRARY_DETAIL) + .withString("id", v.getKnowledgeId()) + .navigation()); mRlvKnowledge.setLayoutManager(new LinearLayoutManager(mActivity)); mRlvKnowledge.setAdapter(mKnowLedgeListAdapter); @@ -351,10 +354,10 @@ public class LeaderMainFragment extends BaseFragment { mLlKnowHint.setVisibility(View.VISIBLE); mRlvKnowledge.setVisibility(View.GONE); mTvMineIncident.setOnClickListener(v -> - ARouter.getInstance() - .build(PathConfig.PATH_MODULE_COMMON_ACTIVITY_INCIDENT_DONE) - .withString("client", "center") - .navigation()); + ARouter.getInstance() + .build(PathConfig.PATH_MODULE_COMMON_ACTIVITY_INCIDENT_DONE) + .withString("client", "center") + .navigation()); getKnowList(); } @@ -366,28 +369,33 @@ public class LeaderMainFragment extends BaseFragment { switch (text) { case "事件派遣": ARouter.getInstance() - .build(PathConfig.PATH_MODULE_COMMAND_ACTIVITY_INCIDENT_DISPATCH_LIST) - .navigation(); + .build(PathConfig.PATH_MODULE_COMMAND_ACTIVITY_INCIDENT_DISPATCH_LIST) + .navigation(); break; case "归档事件": ARouter.getInstance() - .build(PathConfig.PATH_MODULE_COMMON_ACTIVITY_INCIDENT_ARCHIVE_LIST) - .navigation(); + .build(PathConfig.PATH_MODULE_COMMON_ACTIVITY_INCIDENT_ARCHIVE_LIST) + .navigation(); break; case "超时预警事件": ARouter.getInstance() - .build(PathConfig.PATH_MODULE_COMMON_ACTIVITY_INCIDENT_CENTER_SPECIAL) - .navigation(); + .build(PathConfig.PATH_MODULE_COMMON_ACTIVITY_INCIDENT_CENTER_SPECIAL) + .navigation(); break; case "督办消息": ARouter.getInstance() - .build(PathConfig.PATH_MODULE_COMMON_ACTIVITY_INCIDENT_OVERSEE) - .navigation(); + .build(PathConfig.PATH_MODULE_COMMON_ACTIVITY_INCIDENT_OVERSEE) + .navigation(); break; case "通讯录": ARouter.getInstance() - .build(PathConfig.PATH_MODULE_CHAT_ADDRESSLIST) - .navigation(); + .build(PathConfig.PATH_MODULE_CHAT_ADDRESSLIST) + .navigation(); + break; + case "工作日志": + ARouter.getInstance() + .build(PathConfig.PATH_MODULE_COMMON_ACTIVITY_JOURNAL_LIST) + .navigation(); break; default: break; diff --git a/mainmodule/src/main/res/drawable-xhdpi/ic_journal_list.png b/mainmodule/src/main/res/drawable-xhdpi/ic_journal_list.png new file mode 100644 index 0000000000000000000000000000000000000000..dac8234e99b8a3ebe1b57d73ce802fb8a1042b5b GIT binary patch literal 1142 zcmV-+1d02JP)Px(FiAu~RA@u(nO|rWR}{v-b7wZYt43{zh}K{Vi^OdxN}E1dEDB<)T`DQm2Q`{L z6kD)pgwkSZH3(LvkU$@_5j5iZpfCDp#1c^oMbJu(@n1?Kh4`RY+o-!cJ2SV;##v@| zXLe?1XJ?b*ecXG_neTVbnKPHWgeksgitC3X0Ox!GfWH82C8EAUV9xo+08RsVjfh4q z_74L1l879iI#!zEio$r^ z;^SAnw2jdx51B5;5pXe-5!z{K{}Znuc>rm+V~_);>}x@*2{0j=w}<1&vlRnmhC8@bkZJ>{ zoOefGPZkXaw?O#{*a1+e0ijqgd9j&qLwt1`vLidevyX~fZ0-h-Fdg#P z5lc-~2XLDSuXZm1^vv0{kk`z*_50sefOmB@P*2Zer$m%|iM8zL0T=^URp+x)sRuG5 z?Z{zTRuxdTefBjmtf8k;f{q>?FBP*SKsbKF@vP*OA$?!Ev$2gU?1~dWPCViJoE_m3 zMWh5Bw1;pSqjw1yb1Slx9S7zESX2tYBwjakfN%ovLwm^>dJFL{KL3h?@3%50!X?;L zVp0G^4%esb#ODiP15tAT;pgxLc2`{GvecI;Dt%ylCu$17ehWePwa%sXyqO6iuqiZg zT&MhD%Acz7B5)<2?%F2UsQ)Fc?h*-oq{iN+xCZ5hyMoCa#U)CAG z59I|h{1hKJfZyT+1*l9sKTjE+ZyRG#1DQhA5+6tfswv(Xpo}TR1k47=bZt>>@s0rH zoJKSEHpY=^aDysU`T3c@H}bC?tW=WZ@X z+dB!%Vi_R{#ZL-=hkvWseqbDp4H4|#*J}$A86M8{yw*0xRr3m58OowJ`8=m-^G8i+ zTm6kCME%o~sFQy$+N(Lh>47xP4rcJmOhRi+#E0v*VtRceLh>j?WfY=(AA)LsN9!lR zp8%TOOdX@mxnCr-#sn;wE0pV+vsYDo5^X)v@5$MCE0G%N=wuAXyaw{-$FGLt$+x`u zPI#GapHsIwo1w~`l>~I_%Lvyi`FB!(j&IlJZiV}8H{}8T19HcNPaH3(L;wH)07*qo IM6N<$g4iz%#{d8T literal 0 HcmV?d00001 From c02e6ff7578c86ddbcecc1f3362749dc6c91bbb0 Mon Sep 17 00:00:00 2001 From: itgaojian163 Date: Wed, 26 Oct 2022 21:32:34 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index b21e4c5..b6803fb 100644 --- a/README.md +++ b/README.md @@ -19,4 +19,10 @@ ``` 1.修改融合通信登录时机 2.添加单设备登录 +``` + + +### 2022-10-26 +``` +1.添加日志浏览功能 ``` \ No newline at end of file