diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/CustomStateView.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/CustomStateView.java
new file mode 100644
index 0000000..7ad9c37
--- /dev/null
+++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/CustomStateView.java
@@ -0,0 +1,79 @@
+package com.tenlionsoft.baselib.core.widget.views;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.ProgressBar;
+import android.widget.TextView;
+
+import com.tenlionsoft.baselib.R;
+
+import androidx.annotation.Nullable;
+
+/**
+ * 作者: adam
+ * 日期: 2022/4/27 - 16:40
+ * 邮箱: itgaojian@163.com
+ * 描述:
+ */
+public class CustomStateView extends LinearLayout {
+ public static final int STATE_LOAD = 0x123;
+ public static final int STATE_EMPTY = 0x124;
+ public static final int STATE_ERROR = 0x125;
+ public static final int STATE_SUCCESS = 0x126;
+ private int mState = STATE_LOAD;
+ private ProgressBar mPbStateLoading;
+ private ImageView mIvStateDate;
+ private TextView mTvStateHint;
+
+ public CustomStateView(Context context) {
+ super(context);
+ }
+
+ public CustomStateView(Context context, @Nullable AttributeSet attrs) {
+ super(context, attrs);
+ View view = LayoutInflater.from(context).inflate(R.layout.layout_state_view, this, true);
+ mPbStateLoading = view.findViewById(R.id.pb_state_loading);
+ mIvStateDate = view.findViewById(R.id.iv_state_data);
+ mTvStateHint = view.findViewById(R.id.tv_state_hint);
+ setState(STATE_LOAD);
+ }
+
+ public CustomStateView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+
+ }
+
+ public void setState(int state) {
+ switch (state) {
+ case STATE_LOAD://加载中
+ mIvStateDate.setVisibility(View.GONE);
+ mPbStateLoading.setVisibility(View.VISIBLE);
+ mTvStateHint.setVisibility(View.VISIBLE);
+ mTvStateHint.setText("加载中...");
+ break;
+ case STATE_EMPTY://没有数据
+ mIvStateDate.setVisibility(View.VISIBLE);
+ mIvStateDate.setBackgroundResource(R.drawable.ic_empty_data);
+ mPbStateLoading.setVisibility(View.GONE);
+ mTvStateHint.setVisibility(View.VISIBLE);
+ mTvStateHint.setText("暂无数据");
+ break;
+ case STATE_ERROR:
+ mIvStateDate.setVisibility(View.VISIBLE);
+ mIvStateDate.setBackgroundResource(R.drawable.ic_load_error);
+ mPbStateLoading.setVisibility(View.GONE);
+ mTvStateHint.setVisibility(View.VISIBLE);
+ mTvStateHint.setText("加载失败");
+ break;
+ case STATE_SUCCESS:
+ mIvStateDate.setVisibility(GONE);
+ mPbStateLoading.setVisibility(GONE);
+ mTvStateHint.setVisibility(GONE);
+ break;
+ }
+ }
+}
diff --git a/baselib/src/main/res/drawable-xhdpi/ic_arrow_down_black.png b/baselib/src/main/res/drawable-xhdpi/ic_arrow_down_black.png
new file mode 100644
index 0000000..c40b089
Binary files /dev/null and b/baselib/src/main/res/drawable-xhdpi/ic_arrow_down_black.png differ
diff --git a/baselib/src/main/res/drawable-xhdpi/ic_empty_data.png b/baselib/src/main/res/drawable-xhdpi/ic_empty_data.png
old mode 100755
new mode 100644
index 222a118..9566834
Binary files a/baselib/src/main/res/drawable-xhdpi/ic_empty_data.png and b/baselib/src/main/res/drawable-xhdpi/ic_empty_data.png differ
diff --git a/baselib/src/main/res/drawable-xhdpi/ic_read_num_hint.png b/baselib/src/main/res/drawable-xhdpi/ic_read_num_hint.png
new file mode 100644
index 0000000..5dd47c8
Binary files /dev/null and b/baselib/src/main/res/drawable-xhdpi/ic_read_num_hint.png differ
diff --git a/baselib/src/main/res/drawable-xhdpi/ic_schedule_hint_icon.png b/baselib/src/main/res/drawable-xhdpi/ic_schedule_hint_icon.png
new file mode 100644
index 0000000..ba6487d
Binary files /dev/null and b/baselib/src/main/res/drawable-xhdpi/ic_schedule_hint_icon.png differ
diff --git a/baselib/src/main/res/drawable-xhdpi/ic_search_black_solid_icon.png b/baselib/src/main/res/drawable-xhdpi/ic_search_black_solid_icon.png
new file mode 100644
index 0000000..886c537
Binary files /dev/null and b/baselib/src/main/res/drawable-xhdpi/ic_search_black_solid_icon.png differ
diff --git a/baselib/src/main/res/layout/layout_state_view.xml b/baselib/src/main/res/layout/layout_state_view.xml
new file mode 100644
index 0000000..5546d3c
--- /dev/null
+++ b/baselib/src/main/res/layout/layout_state_view.xml
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/oamodule/src/main/java/com/tenlionsoft/oamodule/activity/notify/NoticeDetailActivity.java b/oamodule/src/main/java/com/tenlionsoft/oamodule/activity/notify/NoticeDetailActivity.java
index f76b189..d416d37 100644
--- a/oamodule/src/main/java/com/tenlionsoft/oamodule/activity/notify/NoticeDetailActivity.java
+++ b/oamodule/src/main/java/com/tenlionsoft/oamodule/activity/notify/NoticeDetailActivity.java
@@ -4,6 +4,7 @@ import android.graphics.Color;
import android.net.http.SslError;
import android.os.Build;
import android.text.TextUtils;
+import android.view.View;
import android.webkit.HttpAuthHandler;
import android.webkit.JsResult;
import android.webkit.SslErrorHandler;
@@ -61,7 +62,12 @@ public class NoticeDetailActivity extends BaseActivity {
RecyclerView mRlvFiles;
@BindView(R2.id.nsw_web)
NestedScrollWebView mNswWeb;
+ @BindView(R2.id.ll_num)
+ LinearLayout mLlNum;
+ @BindView(R2.id.tv_read_state)
+ TextView mTvReadState;
private String mId;
+ private NoticeListBean.RowsBean mBean;
@Override
protected int setLayoutId() {
@@ -118,8 +124,9 @@ public class NoticeDetailActivity extends BaseActivity {
*/
private void setDataToView(NoticeListBean.RowsBean bean) {
refreshView(STATE_LOAD_SUCCESS);
+ mBean = bean;
mTvTitle.setText(bean.getNoticeTitle());
- mTvTime.setText("发布时间:" + bean.getGmtCreate());
+ mTvTime.setText("发布时间:" + bean.getNoticeCheckTime());
mTvNum.setText(bean.getNoticeReadCount() + "");
mTvType.setText(bean.getNoticeTypeName());
switch (bean.getNoticeLevel()) {
@@ -137,7 +144,16 @@ public class NoticeDetailActivity extends BaseActivity {
break;
}
-
+ //判断状态 1全部人员 2指定部门 3指定人员
+ if (!"1".equals(bean.getNoticeRange())) {
+ if ("1".equals(bean.getNoticeReadStatus())) {
+ mTvReadState.setVisibility(View.VISIBLE);
+ } else {
+ mTvReadState.setVisibility(View.GONE);
+ }
+ } else {
+ mTvReadState.setVisibility(View.GONE);
+ }
WebSettings settings = mNswWeb.getSettings();
settings.setCacheMode(WebSettings.LOAD_DEFAULT);
settings.setAppCacheEnabled(true);
@@ -202,6 +218,12 @@ public class NoticeDetailActivity extends BaseActivity {
@Override
public void onNext(@NonNull BaseSuccessBean baseSuccessBean) {
LogUtils.e("通知公告已读==" + mId);
+ if (!"1".equals(mBean.getNoticeRange())) {
+ mTvReadState.setVisibility(View.VISIBLE);
+ } else {
+ mTvReadState.setVisibility(View.GONE);
+ }
+
}
@Override
diff --git a/oamodule/src/main/java/com/tenlionsoft/oamodule/activity/schedule/ScheduleActivity.java b/oamodule/src/main/java/com/tenlionsoft/oamodule/activity/schedule/ScheduleActivity.java
index 819cb83..da52da7 100644
--- a/oamodule/src/main/java/com/tenlionsoft/oamodule/activity/schedule/ScheduleActivity.java
+++ b/oamodule/src/main/java/com/tenlionsoft/oamodule/activity/schedule/ScheduleActivity.java
@@ -122,6 +122,9 @@ public class ScheduleActivity extends BaseActivity implements
* 初始化页面
*/
private void initViews() {
+ setTouchDelegate(mIvAdd, 30);
+ setTouchDelegate(mIvSearch, 30);
+ setTouchDelegate(mIvBack, 30);
mCurrentYear = mCalendarView.getCurYear();
mCurrentMonth = mCalendarView.getCurMonth();
mCurrentDay = mCalendarView.getCurDay();
diff --git a/oamodule/src/main/java/com/tenlionsoft/oamodule/adapter/ScheduleAdapter.java b/oamodule/src/main/java/com/tenlionsoft/oamodule/adapter/ScheduleAdapter.java
index aaa30ba..f60d195 100644
--- a/oamodule/src/main/java/com/tenlionsoft/oamodule/adapter/ScheduleAdapter.java
+++ b/oamodule/src/main/java/com/tenlionsoft/oamodule/adapter/ScheduleAdapter.java
@@ -6,6 +6,7 @@ import android.view.View;
import android.view.ViewGroup;
import com.tenlionsoft.baselib.core.widget.base.BaseRecyclerAdapter;
+import com.tenlionsoft.baselib.utils.TimeUtils;
import com.tenlionsoft.oamodule.R;
import com.tenlionsoft.oamodule.beans.ScheduleDetailBean;
import com.tenlionsoft.oamodule.holder.ScheduleHolder;
@@ -31,7 +32,14 @@ public class ScheduleAdapter extends BaseRecyclerAdapter mFuncBeans;
private FunctionTitleNumAdapter mAdapter;
private ActivityResultLauncher mLauncher;
+ private NoticeShowAdapter mNoticeShowAdapter;
+ private List mNoticeListBeanRows;
@Override
protected int getContentViewId() {
@@ -132,8 +133,8 @@ public class OaMainFragment extends BaseFragment {
setStateView(STATE_SUCCESS);
mSrlView.setEnableRefresh(false);
mSrlView.setEnableLoadMore(false);
- getNoticeList();
initContentView();
+ doRefresh();
Glide.with(mActivity)
.load(R.drawable.ic_main_title_bg)
.apply(new RequestOptions()
@@ -152,47 +153,6 @@ public class OaMainFragment extends BaseFragment {
});
}
- private void getNoticeList() {
- RetrofitManager.getInstance()
- .create(OAApi.class)
- .getNoticeList("", "", "", "1", "15", UserLgUtils.getToken())
- .compose(RxTransformer.getTransformer())
- .subscribe(new Observer() {
- @Override
- public void onSubscribe(@NonNull Disposable d) {
-
- }
-
- @Override
- public void onNext(@NonNull NoticeListBean noticeListBean) {
- if (noticeListBean.getRows().size() > 0) {
- mRlvNotice.setVisibility(View.VISIBLE);
- mLlEmpty.setVisibility(View.GONE);
- NoticeShowAdapter adapter = new NoticeShowAdapter(mActivity, noticeListBean.getRows());
- mRlvNotice.setLayoutManager(new LinearLayoutManager(mActivity));
- mRlvNotice.setAdapter(adapter);
- adapter.addOnItemClickListener(rowsBean -> ARouter.getInstance()
- .build(PathConfig.PATH_MODULE_OA_ACTIVITY_NOTICE_DETAIL)
- .withString("id", rowsBean.getNoticeId())
- .navigation());
- } else {
- mRlvNotice.setVisibility(View.GONE);
- mLlEmpty.setVisibility(View.VISIBLE);
- }
- }
-
- @Override
- public void onError(@NonNull Throwable e) {
- mRlvNotice.setVisibility(View.GONE);
- mLlEmpty.setVisibility(View.VISIBLE);
- }
-
- @Override
- public void onComplete() {
-
- }
- });
- }
/**
* 初始化页面
@@ -205,8 +165,16 @@ public class OaMainFragment extends BaseFragment {
mAdapter.addOnItemClickListener(this::choosePage);
mSrlContent.setEnableLoadMore(false);
mSrlContent.setOnRefreshListener(v -> doRefresh());
-
mSrlContent.setEnableOverScrollDrag(true);
+ mNoticeListBeanRows = new ArrayList<>();
+ mNoticeShowAdapter = new NoticeShowAdapter(mActivity, mNoticeListBeanRows);
+ mRlvNotice.setLayoutManager(new LinearLayoutManager(mActivity));
+ mRlvNotice.setAdapter(mNoticeShowAdapter);
+ mNoticeShowAdapter.addOnItemClickListener(rowsBean -> ARouter.getInstance()
+ .build(PathConfig.PATH_MODULE_OA_ACTIVITY_NOTICE_DETAIL)
+ .withString("id", rowsBean.getNoticeId())
+ .navigation());
+
mTvNoticeMore.setOnClickListener(v -> ARouter.getInstance()
.build(PathConfig.PATH_MODULE_OA_ACTIVITY_NOTICE)
.navigation());//通知公告更多
@@ -214,11 +182,18 @@ public class OaMainFragment extends BaseFragment {
Intent intent = new Intent(mActivity, CaptureActivity.class);
mLauncher.launch(intent);
});
- getMainMenuList();
+
}
private void doRefresh() {
+ mCsvNotice.setVisibility(View.VISIBLE);
+ mCsvFuncs.setVisibility(View.VISIBLE);
+ mCsvFuncs.setState(CustomStateView.STATE_LOAD);
+ mCsvNotice.setState(CustomStateView.STATE_LOAD);
mFuncBeans.clear();
+ mAdapter.setData(mFuncBeans);
+ mNoticeListBeanRows.clear();
+ mNoticeShowAdapter.setData(mNoticeListBeanRows);
//获取菜单
getMainMenuList();
//获取通知公告
@@ -245,16 +220,56 @@ public class OaMainFragment extends BaseFragment {
if (docTypeBeans.size() > 0) {
mFuncBeans = docTypeBeans;
mAdapter.setData(mFuncBeans);
- mLlMenuHint.setVisibility(View.GONE);
+ mCsvFuncs.setVisibility(View.GONE);
} else {
- mLlMenuHint.setVisibility(View.VISIBLE);
+ mCsvFuncs.setVisibility(View.VISIBLE);
+ mCsvFuncs.setState(CustomStateView.STATE_EMPTY);
}
}
@Override
public void onError(@NonNull Throwable e) {
+ mCsvFuncs.setState(CustomStateView.STATE_ERROR);
ExceptionHandler.handleException(e);
- mLlMenuHint.setVisibility(View.VISIBLE);
+ }
+
+ @Override
+ public void onComplete() {
+
+ }
+ });
+ }
+
+ private void getNoticeList() {
+ RetrofitManager.getInstance()
+ .create(OAApi.class)
+ .getNoticeList("", "", "", "1", "15", UserLgUtils.getToken())
+ .compose(RxTransformer.getTransformer())
+ .subscribe(new Observer() {
+ @Override
+ public void onSubscribe(@NonNull Disposable d) {
+
+ }
+
+ @Override
+ public void onNext(@NonNull NoticeListBean noticeListBean) {
+ if (noticeListBean.getRows().size() > 0) {
+ mRlvNotice.setVisibility(View.VISIBLE);
+ mCsvNotice.setVisibility(View.GONE);
+ mNoticeListBeanRows = noticeListBean.getRows();
+ mNoticeShowAdapter.setData(mNoticeListBeanRows);
+
+ } else {
+ mRlvNotice.setVisibility(View.GONE);
+ mCsvNotice.setVisibility(View.VISIBLE);
+ mCsvNotice.setState(CustomStateView.STATE_EMPTY);
+ }
+ }
+
+ @Override
+ public void onError(@NonNull Throwable e) {
+ mRlvNotice.setVisibility(View.GONE);
+ mCsvNotice.setState(CustomStateView.STATE_ERROR);
}
@Override
diff --git a/oamodule/src/main/res/layout/activity_notice_detail.xml b/oamodule/src/main/res/layout/activity_notice_detail.xml
index 6228bd3..d24f7db 100644
--- a/oamodule/src/main/res/layout/activity_notice_detail.xml
+++ b/oamodule/src/main/res/layout/activity_notice_detail.xml
@@ -31,7 +31,7 @@
android:textSize="@dimen/text_16"
tools:text="通知公告通知公告通知公告通知公告通知公告通知公告通知公告通知公告" />
-
-
-
+ android:layout_toRightOf="@id/tv_time"
+ android:gravity="center"
+ android:orientation="horizontal">
+
+
+
+
+
+
+
+
+
diff --git a/oamodule/src/main/res/layout/activity_schedule.xml b/oamodule/src/main/res/layout/activity_schedule.xml
index 3cda5fe..2e11d53 100644
--- a/oamodule/src/main/res/layout/activity_schedule.xml
+++ b/oamodule/src/main/res/layout/activity_schedule.xml
@@ -19,8 +19,8 @@
+ android:src="@drawable/ic_search_black_solid_icon" />
+ android:layout_width="25dp"
+ android:layout_height="25dp"
+ android:scaleType="fitXY"
+ android:src="@drawable/ic_add_icon_solid" />
@@ -93,28 +94,58 @@
android:orientation="horizontal"
android:padding="5dp">
-
+ android:orientation="horizontal"
+ android:padding="7dp">
-
+
+
+
+
+
+ android:orientation="horizontal"
+ android:padding="7dp">
+
+
+
+
+
+ android:padding="2dp">
@@ -149,7 +182,9 @@
android:button="@null"
android:gravity="center"
android:paddingLeft="10dp"
+ android:paddingTop="5dp"
android:paddingRight="10dp"
+ android:paddingBottom="5dp"
android:text="年"
android:textStyle="bold" />
diff --git a/oamodule/src/main/res/layout/fragment_oa_main.xml b/oamodule/src/main/res/layout/fragment_oa_main.xml
index e358678..6aa6962 100644
--- a/oamodule/src/main/res/layout/fragment_oa_main.xml
+++ b/oamodule/src/main/res/layout/fragment_oa_main.xml
@@ -265,26 +265,11 @@
tools:listitem="@layout/item_main_func_title_num"
tools:spanCount="4" />
-
-
-
-
-
-
+ android:layout_centerInParent="true" />
-
-
-
-
-
-
+ android:layout_centerInParent="true" />
diff --git a/oamodule/src/main/res/layout/item_notice.xml b/oamodule/src/main/res/layout/item_notice.xml
index ab0b5c6..dbf08fd 100644
--- a/oamodule/src/main/res/layout/item_notice.xml
+++ b/oamodule/src/main/res/layout/item_notice.xml
@@ -40,13 +40,24 @@
android:textSize="@dimen/text_12"
tools:text="2022-12-12 12:12:12" />
-
+ android:gravity="center"
+ android:orientation="horizontal">
+
+
+
+
+
\ No newline at end of file
diff --git a/oamodule/src/main/res/layout/item_schedule.xml b/oamodule/src/main/res/layout/item_schedule.xml
index 69485b7..6009b59 100644
--- a/oamodule/src/main/res/layout/item_schedule.xml
+++ b/oamodule/src/main/res/layout/item_schedule.xml
@@ -7,21 +7,32 @@
android:background="@drawable/shp_rectangle_white_5"
android:orientation="vertical">
-
+ android:gravity="center_vertical"
+ android:orientation="horizontal"
+ android:padding="5dp">
+
+
+
+
+
+ android:background="@color/gray_bg" />