会议签到

This commit is contained in:
adam 2022-04-20 10:08:36 +08:00
parent 0b23261d59
commit 94cd6f3341
9 changed files with 263 additions and 95 deletions

View File

@ -45,8 +45,8 @@ public class QrDialog extends Dialog {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
view = LayoutInflater.from(context).inflate(R.layout.dialog_meeting_qr, null); view = LayoutInflater.from(context).inflate(R.layout.dialog_meeting_qr, null);
setContentView(view); setContentView(view);
setCancelable(false); setCancelable(true);
setCanceledOnTouchOutside(false); setCanceledOnTouchOutside(true);
ImageView mIvQr = view.findViewById(R.id.iv_qr); ImageView mIvQr = view.findViewById(R.id.iv_qr);
Glide.with(context) Glide.with(context)
.load(BaseUrlApi.BASE_IMG_URL + mQr) .load(BaseUrlApi.BASE_IMG_URL + mQr)

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/gray_bg" />
<corners android:radius="5dp" />
</shape>

View File

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ll_base_search_cancel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="10dp">
<EditText
android:id="@+id/et_base_search_cancel"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginRight="10dp"
android:layout_weight="1"
android:background="@drawable/shp_rectangle_gray_5"
android:drawableLeft="@drawable/ic_search_icon_gray"
android:drawablePadding="5dp"
android:hint="搜索"
android:imeOptions="actionSearch"
android:padding="3dp"
android:singleLine="true"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_base_search_cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="取消"
android:textColor="@color/gray_text" />
</LinearLayout>

View File

@ -1,7 +1,9 @@
package com.tengshisoft.mainmodule.base; package com.tengshisoft.mainmodule.base;
import android.app.ProgressDialog;
import android.content.Intent; import android.content.Intent;
import android.graphics.Color; import android.graphics.Color;
import android.text.TextUtils;
import android.view.View; import android.view.View;
import android.widget.FrameLayout; import android.widget.FrameLayout;
import android.widget.ImageView; import android.widget.ImageView;
@ -17,7 +19,9 @@ import com.king.zxing.CameraScan;
import com.king.zxing.CaptureActivity; import com.king.zxing.CaptureActivity;
import com.tengshisoft.mainmodule.R; import com.tengshisoft.mainmodule.R;
import com.tengshisoft.mainmodule.R2; import com.tengshisoft.mainmodule.R2;
import com.tengshisoft.mainmodule.net.MainApi;
import com.tenlionsoft.baselib.constant.PathConfig; import com.tenlionsoft.baselib.constant.PathConfig;
import com.tenlionsoft.baselib.core.beans.BaseSuccessBean;
import com.tenlionsoft.baselib.core.beans.UserInfoBean; import com.tenlionsoft.baselib.core.beans.UserInfoBean;
import com.tenlionsoft.baselib.core.network.update.CheckUpdateUtils; import com.tenlionsoft.baselib.core.network.update.CheckUpdateUtils;
import com.tenlionsoft.baselib.core.network.update.service.DownloadService; import com.tenlionsoft.baselib.core.network.update.service.DownloadService;
@ -32,8 +36,10 @@ import com.tenlionsoft.baselib.core.widget.base.BaseActivity;
import com.tenlionsoft.baselib.core.widget.base.BaseFragment; import com.tenlionsoft.baselib.core.widget.base.BaseFragment;
import com.tenlionsoft.baselib.core.widget.base.BaseViewPage2Adapter; import com.tenlionsoft.baselib.core.widget.base.BaseViewPage2Adapter;
import com.tenlionsoft.baselib.core.widget.base.FragmentUtils; import com.tenlionsoft.baselib.core.widget.base.FragmentUtils;
import com.tenlionsoft.baselib.utils.ExceptionHandler;
import com.tenlionsoft.baselib.utils.KeyBoardListener; import com.tenlionsoft.baselib.utils.KeyBoardListener;
import com.tenlionsoft.baselib.utils.LogUtils; import com.tenlionsoft.baselib.utils.LogUtils;
import com.tenlionsoft.baselib.utils.UIUtil;
import com.tenlionsoft.baselib.utils.UserLgUtils; import com.tenlionsoft.baselib.utils.UserLgUtils;
import java.util.ArrayList; import java.util.ArrayList;
@ -41,7 +47,6 @@ import java.util.List;
import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts; import androidx.activity.result.contract.ActivityResultContracts;
import androidx.annotation.Nullable;
import androidx.viewpager2.widget.ViewPager2; import androidx.viewpager2.widget.ViewPager2;
import butterknife.BindView; import butterknife.BindView;
import butterknife.ButterKnife; import butterknife.ButterKnife;
@ -117,7 +122,15 @@ public class MainTabActivity extends BaseActivity {
mLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> { mLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> {
if (result.getResultCode() == RESULT_OK) { if (result.getResultCode() == RESULT_OK) {
String s = CameraScan.parseScanResult(result.getData()); String s = CameraScan.parseScanResult(result.getData());
LogUtils.e("扫描结果=="+s); // MEETING:49b90221-67c0-44ec-b131-f9f2bb3f0709
if (!TextUtils.isEmpty(s)) {
String[] split = s.split(":");
if ("MEETING".equals(split[0])) {
doSignMeeting(split[1]);
}
} else {
ToastUtils.show("未能识别二维码内容");
}
} }
}); });
@ -126,6 +139,41 @@ public class MainTabActivity extends BaseActivity {
//TODO 检查App版本 checkAppVersion(); //TODO 检查App版本 checkAppVersion();
} }
/**
* 会议签到
*/
private void doSignMeeting(String s) {
ProgressDialog dialog = UIUtil.initDialog(mActivity, "签到中...");
dialog.show();
RetrofitManager.getInstance()
.create(MainApi.class)
.doSignMeeting(s, UserLgUtils.getToken())
.compose(RxTransformer.getTransformer())
.subscribe(new Observer<BaseSuccessBean>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onNext(@NonNull BaseSuccessBean baseSuccessBean) {
if (dialog.isShowing()) dialog.dismiss();
ToastUtils.show("签到成功");
}
@Override
public void onError(@NonNull Throwable e) {
if (dialog.isShowing()) dialog.dismiss();
ExceptionHandler.handleException(e);
}
@Override
public void onComplete() {
}
});
}
/** /**
* 初始化视图 * 初始化视图
@ -263,6 +311,7 @@ public class MainTabActivity extends BaseActivity {
.statusBarDarkFont(true) .statusBarDarkFont(true)
.titleBar(mVStatusBar) .titleBar(mVStatusBar)
.init(); .init();
break;
case 3://加号 case 3://加号
Intent intent = new Intent(mActivity, CaptureActivity.class); Intent intent = new Intent(mActivity, CaptureActivity.class);
mLauncher.launch(intent); mLauncher.launch(intent);
@ -274,7 +323,7 @@ public class MainTabActivity extends BaseActivity {
mVStatusBar.setVisibility(View.VISIBLE); mVStatusBar.setVisibility(View.VISIBLE);
ImmersionBar.with(this) ImmersionBar.with(this)
.statusBarColor(R.color.gray) .statusBarColor(R.color.gray_f0)
.statusBarDarkFont(true) .statusBarDarkFont(true)
.titleBar(mVStatusBar) .titleBar(mVStatusBar)
.init(); .init();
@ -293,10 +342,6 @@ public class MainTabActivity extends BaseActivity {
} }
} }
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable @org.jetbrains.annotations.Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
}
/** /**
* App版本校验 * App版本校验

View File

@ -14,6 +14,7 @@ import retrofit2.http.Header;
import retrofit2.http.Headers; import retrofit2.http.Headers;
import retrofit2.http.Multipart; import retrofit2.http.Multipart;
import retrofit2.http.POST; import retrofit2.http.POST;
import retrofit2.http.PUT;
import retrofit2.http.Part; import retrofit2.http.Part;
import retrofit2.http.Path; import retrofit2.http.Path;
@ -64,5 +65,12 @@ public interface MainApi {
@GET("app/check/countcheckofmine") @GET("app/check/countcheckofmine")
Observable<BaseSuccessBean> getHistoryCount(@Header("token") String token); Observable<BaseSuccessBean> getHistoryCount(@Header("token") String token);
/**
* 会议签到
*/
@Headers({"base_url_name:oa", "Content-Type: application/json", "Accept: application/json"})
@PUT("app/meetinguser/update-sign/{meetingId}")
Observable<BaseSuccessBean> doSignMeeting(@Path("meetingId") String id, @Header("token") String token);
} }

View File

@ -8,6 +8,7 @@ import android.view.ViewGroup;
import com.bumptech.glide.Glide; import com.bumptech.glide.Glide;
import com.tenlionsoft.baselib.core.widget.base.BaseRecyclerAdapter; import com.tenlionsoft.baselib.core.widget.base.BaseRecyclerAdapter;
import com.tenlionsoft.baselib.utils.LogUtils;
import com.tenlionsoft.oamodule.R; import com.tenlionsoft.oamodule.R;
import com.tenlionsoft.oamodule.beans.MeetingAttachListBean; import com.tenlionsoft.oamodule.beans.MeetingAttachListBean;
import com.tenlionsoft.oamodule.holder.BasePersonShowHolder; import com.tenlionsoft.oamodule.holder.BasePersonShowHolder;
@ -37,7 +38,8 @@ public class BasePersonShowAdapter extends BaseRecyclerAdapter<MeetingAttachList
@Override @Override
public void bindHolder(BasePersonShowHolder h, int i) { public void bindHolder(BasePersonShowHolder h, int i) {
MeetingAttachListBean b = mData.get(i); MeetingAttachListBean b = mData.get(i);
if (!TextUtils.isEmpty(b.getUserId())) { LogUtils.e(b.getUserId());
if (!TextUtils.isEmpty(b.getUserId()) ) {
h.mTvName.setVisibility(View.VISIBLE); h.mTvName.setVisibility(View.VISIBLE);
if (mType == 2) { if (mType == 2) {
//单纯显示 //单纯显示
@ -63,6 +65,7 @@ public class BasePersonShowAdapter extends BaseRecyclerAdapter<MeetingAttachList
h.mIvDel.setOnClickListener(v -> mDelListener.doDel(mData.get(i), i)); h.mIvDel.setOnClickListener(v -> mDelListener.doDel(mData.get(i), i));
} }
} else { } else {
h.mIvSign.setVisibility(View.GONE);
h.mTvName.setVisibility(View.GONE); h.mTvName.setVisibility(View.GONE);
h.mIvDel.setVisibility(View.GONE); h.mIvDel.setVisibility(View.GONE);
Glide.with(mContext) Glide.with(mContext)

View File

@ -1,13 +1,20 @@
package com.tenlionsoft.oamodule.fragments; package com.tenlionsoft.oamodule.fragments;
import android.view.View; import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.alibaba.android.arouter.facade.annotation.Route; import com.alibaba.android.arouter.facade.annotation.Route;
import com.tenlionsoft.baselib.constant.PathConfig; import com.tenlionsoft.baselib.constant.PathConfig;
import com.tenlionsoft.baselib.core.widget.base.BaseFragment; import com.tenlionsoft.baselib.core.widget.base.BaseFragment;
import com.tenlionsoft.baselib.utils.LogUtils; import com.tenlionsoft.baselib.utils.LogUtils;
import com.tenlionsoft.oamodule.R; import com.tenlionsoft.oamodule.R;
import com.tenlionsoft.oamodule.R2;
import butterknife.BindView;
import butterknife.ButterKnife; import butterknife.ButterKnife;
/** /**
@ -18,6 +25,29 @@ import butterknife.ButterKnife;
*/ */
@Route(path = PathConfig.PATH_MODULE_OA_FRAGMENT_EMAIL) @Route(path = PathConfig.PATH_MODULE_OA_FRAGMENT_EMAIL)
public class EmailFragment extends BaseFragment { public class EmailFragment extends BaseFragment {
@BindView(R2.id.iv_add)
ImageView mIvAdd;
@BindView(R2.id.rl_title)
RelativeLayout mRlTitle;
@BindView(R2.id.et_base_search_cancel)
EditText mEtBaseSearchCancel;
@BindView(R2.id.tv_base_search_cancel)
TextView mTvBaseSearchCancel;
@BindView(R2.id.ll_base_search_cancel)
LinearLayout mLlBaseSearchCancel;
@BindView(R2.id.tv_inbox_num)
TextView mTvInboxNum;
@BindView(R2.id.rl_inbox)
RelativeLayout mRlInbox;
@BindView(R2.id.tv_sent_box)
TextView mTvSentBox;
@BindView(R2.id.tv_draft_box)
TextView mTvDraftBox;
@BindView(R2.id.tv_recycle_box)
TextView mTvRecycleBox;
@BindView(R2.id.ll_content)
LinearLayout mLlContent;
@Override @Override
protected int getContentViewId() { protected int getContentViewId() {
return R.layout.fragment_oa_email; return R.layout.fragment_oa_email;
@ -26,7 +56,17 @@ public class EmailFragment extends BaseFragment {
@Override @Override
protected void setDataToView(View dataView) { protected void setDataToView(View dataView) {
ButterKnife.bind(this, dataView); ButterKnife.bind(this, dataView);
LogUtils.e("EmailFragment"); setStateView(STATE_SUCCESS);
mSrlView.setEnableLoadMore(false);
mSrlView.setEnableLoadMore(false);
}
@Override
public void onResume() {
super.onResume();
//获取焦点
LogUtils.e("email获取了焦点");
} }
@Override @Override

View File

@ -259,6 +259,13 @@ public interface OAApi {
@GET("app/meeting/get-signqrcode/{meetingId}") @GET("app/meeting/get-signqrcode/{meetingId}")
Observable<MeetingQrBean> getMeetingSignQr(@Path("meetingId") String id, @Header("token") String token); Observable<MeetingQrBean> getMeetingSignQr(@Path("meetingId") String id, @Header("token") String token);
/**
* 会议签到
*/
@Headers({"base_url_name:oa", "Content-Type: application/json", "Accept: application/json"})
@PUT("app/meetinguser/update-sign/{meetingId}")
Observable<BaseSuccessBean> doSignMeeting(@Path("meetingId") String id, @Header("token") String token);
/*========日常工作========*/ /*========日常工作========*/
/** /**

View File

@ -34,108 +34,136 @@
android:background="@color/white" android:background="@color/white"
android:orientation="vertical"> android:orientation="vertical">
<include layout="@layout/layout_base_search_cancel_gray" />
<LinearLayout <LinearLayout
android:id="@+id/ll_content"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_margin="10dp" android:layout_marginLeft="10dp"
android:gravity="center_vertical" android:layout_marginRight="10dp"
android:orientation="horizontal"> android:orientation="vertical">
<EditText <View
android:id="@+id/et_search" android:layout_width="match_parent"
android:layout_width="0dp" android:layout_height="1dp"
android:layout_height="wrap_content" android:layout_marginLeft="5dp"
android:layout_marginRight="10dp" android:layout_marginRight="5dp"
android:layout_weight="1" android:layout_gravity="center_horizontal"
android:background="@drawable/shp_rectangle_gray_f5" android:background="@color/gray_bg" />
android:drawableLeft="@drawable/ic_search_icon_gray"
android:drawablePadding="5dp"
android:hint="搜索"
android:padding="5dp"
android:textSize="12sp" />
<TextView <TextView
android:id="@+id/tv_search"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="搜索" android:layout_marginTop="5dp"
android:textColor="@color/text_blue" /> android:text="我的收件箱" />
</LinearLayout> <RelativeLayout
android:id="@+id/rl_inbox"
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/ll_content"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="收件箱" />
</LinearLayout>
</LinearLayout>
<com.scwang.smart.refresh.layout.SmartRefreshLayout
android:id="@+id/srl_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="10dp"
android:layout_marginTop="5dp" android:layout_marginTop="5dp"
android:layout_marginRight="10dp" android:orientation="horizontal">
tools:visibility="gone">
<RelativeLayout <TextView
android:layout_width="match_parent" android:layout_width="wrap_content"
android:layout_height="match_parent"> android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:drawablePadding="5dp"
android:drawableLeft="@drawable/ic_type_icon"
android:text="收件箱"
android:textColor="@color/black" />
<androidx.recyclerview.widget.RecyclerView <TextView
android:id="@+id/rlv_doc" android:id="@+id/tv_inbox_num"
android:layout_width="match_parent" android:layout_width="wrap_content"
android:layout_height="match_parent" /> android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
tools:text="22" />
<LinearLayout </RelativeLayout>
android:id="@+id/ll_hint"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:gravity="center"
android:orientation="vertical">
<ProgressBar <View
android:id="@+id/pb_loading" android:layout_width="match_parent"
android:layout_width="50dp" android:layout_height="1dp"
android:layout_height="50dp" android:layout_marginLeft="5dp"
android:indeterminateBehavior="repeat" android:layout_marginRight="5dp"
android:indeterminateDrawable="@drawable/anim_loading" /> android:layout_gravity="center_horizontal"
android:background="@color/gray_bg" />
<ImageView <TextView
android:id="@+id/iv_empty_data" android:layout_width="wrap_content"
android:layout_width="100dp" android:layout_height="wrap_content"
android:layout_height="100dp" android:layout_marginTop="10dp"
android:layout_centerInParent="true" /> android:text="文件夹" />
<TextView <TextView
android:id="@+id/tv_error_hint" android:id="@+id/tv_sent_box"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="10dp" android:layout_marginTop="10dp"
android:clickable="true" android:layout_marginBottom="5dp"
android:textColor="@color/black" android:drawablePadding="5dp"
tools:text="加载数据失败" /> android:clickable="true"
</LinearLayout> android:focusable="true"
</RelativeLayout> android:drawableLeft="@drawable/ic_type_icon"
</com.scwang.smart.refresh.layout.SmartRefreshLayout> android:text="以发送"
</RelativeLayout> android:textColor="@color/black" />
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:layout_gravity="center_horizontal"
android:background="@color/gray_bg" />
<TextView
android:id="@+id/tv_draft_box"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:clickable="true"
android:focusable="true"
android:drawableLeft="@drawable/ic_type_icon"
android:drawablePadding="5dp"
android:text="草稿箱"
android:textColor="@color/black" />
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:background="@color/gray_bg" />
<TextView
android:id="@+id/tv_recycle_box"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:clickable="true"
android:drawablePadding="5dp"
android:focusable="true"
android:drawableLeft="@drawable/ic_type_icon"
android:text="回收站"
android:textColor="@color/black" />
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:layout_gravity="center_horizontal"
android:background="@color/gray_bg" />
</LinearLayout>
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>