文档中心UI调整,添加目录管理功能
This commit is contained in:
parent
7d7c2b8223
commit
104acb6636
@ -148,6 +148,7 @@ public class PathConfig {
|
|||||||
public static final String PATH_MODULE_OA_ACTIVITY_DOCUMENT_ADD = "/oamodule/activity/documentAdd";//文档上传
|
public static final String PATH_MODULE_OA_ACTIVITY_DOCUMENT_ADD = "/oamodule/activity/documentAdd";//文档上传
|
||||||
public static final String PATH_MODULE_OA_ACTIVITY_DOCUMENT_EDIT = "/oamodule/activity/documentEdit";//文档编辑
|
public static final String PATH_MODULE_OA_ACTIVITY_DOCUMENT_EDIT = "/oamodule/activity/documentEdit";//文档编辑
|
||||||
public static final String PATH_MODULE_OA_ACTIVITY_DOCUMENT_DETAIL = "/oamodule/activity/documentDetail";//文档上传
|
public static final String PATH_MODULE_OA_ACTIVITY_DOCUMENT_DETAIL = "/oamodule/activity/documentDetail";//文档上传
|
||||||
|
public static final String PATH_MODULE_OA_ACTIVITY_DOCUMENT_CATEGORY_MANAGE = "/oamodule/activity/documentCategoryManage";//文档类型管理
|
||||||
|
|
||||||
public static final String PATH_MODULE_OA_ACTIVITY_DOCUMENT_TYPE_LIST = "/oamodule/activity/documentTypeList";//文档类型 列表
|
public static final String PATH_MODULE_OA_ACTIVITY_DOCUMENT_TYPE_LIST = "/oamodule/activity/documentTypeList";//文档类型 列表
|
||||||
public static final String PATH_MODULE_OA_ACTIVITY_DOCUMENT_TYPE_ADD = "/oamodule/activity/documentTypeAdd";//文档类型 添加
|
public static final String PATH_MODULE_OA_ACTIVITY_DOCUMENT_TYPE_ADD = "/oamodule/activity/documentTypeAdd";//文档类型 添加
|
||||||
|
@ -3,6 +3,13 @@
|
|||||||
package="com.tenlionsoft.oamodule">
|
package="com.tenlionsoft.oamodule">
|
||||||
|
|
||||||
<application>
|
<application>
|
||||||
|
<activity
|
||||||
|
android:name=".activity.document.DocumentCategoryActivity"
|
||||||
|
android:configChanges="keyboardHidden|screenSize|orientation"
|
||||||
|
android:exported="false"
|
||||||
|
android:launchMode="singleTop"
|
||||||
|
android:windowSoftInputMode="stateVisible|adjustResize" />
|
||||||
|
|
||||||
<activity
|
<activity
|
||||||
android:name=".activity.workreports.WorkReportFragmentActivity"
|
android:name=".activity.workreports.WorkReportFragmentActivity"
|
||||||
android:configChanges="keyboardHidden|screenSize|orientation"
|
android:configChanges="keyboardHidden|screenSize|orientation"
|
||||||
|
@ -0,0 +1,486 @@
|
|||||||
|
package com.tenlionsoft.oamodule.activity.document;
|
||||||
|
|
||||||
|
import android.app.AlertDialog;
|
||||||
|
import android.app.ProgressDialog;
|
||||||
|
import android.content.Intent;
|
||||||
|
import android.graphics.Color;
|
||||||
|
import android.view.View;
|
||||||
|
import android.widget.Button;
|
||||||
|
|
||||||
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
|
import com.alibaba.android.arouter.facade.annotation.Route;
|
||||||
|
import com.google.android.flexbox.FlexDirection;
|
||||||
|
import com.google.android.flexbox.FlexWrap;
|
||||||
|
import com.google.android.flexbox.FlexboxLayoutManager;
|
||||||
|
import com.google.gson.Gson;
|
||||||
|
import com.hjq.toast.ToastUtils;
|
||||||
|
import com.tenlionsoft.baselib.constant.PathConfig;
|
||||||
|
import com.tenlionsoft.baselib.core.beans.BaseSuccessBean;
|
||||||
|
import com.tenlionsoft.baselib.core.retrofit_net.RetrofitManager;
|
||||||
|
import com.tenlionsoft.baselib.core.retrofit_net.conver.RxTransformer;
|
||||||
|
import com.tenlionsoft.baselib.core.widget.base.BaseActivity;
|
||||||
|
import com.tenlionsoft.baselib.core.widget.views.CustomStateView;
|
||||||
|
import com.tenlionsoft.baselib.core.widget.views.ItemSplitDivider;
|
||||||
|
import com.tenlionsoft.baselib.utils.ExceptionHandler;
|
||||||
|
import com.tenlionsoft.baselib.utils.UIUtil;
|
||||||
|
import com.tenlionsoft.oamodule.R;
|
||||||
|
import com.tenlionsoft.oamodule.R2;
|
||||||
|
import com.tenlionsoft.oamodule.adapter.DocumentCategoryManageAdapter;
|
||||||
|
import com.tenlionsoft.oamodule.adapter.SelDocTypeAdapter;
|
||||||
|
import com.tenlionsoft.oamodule.adapter.SelectedDocTypeAdapter;
|
||||||
|
import com.tenlionsoft.oamodule.beans.DocumentTypeList;
|
||||||
|
import com.tenlionsoft.oamodule.beans.SaveDocumentTypeBean;
|
||||||
|
import com.tenlionsoft.oamodule.net.OAApi;
|
||||||
|
import com.tenlionsoft.oamodule.widget.CenterDocTypeView;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import butterknife.BindView;
|
||||||
|
import butterknife.ButterKnife;
|
||||||
|
import io.reactivex.rxjava3.annotations.NonNull;
|
||||||
|
import io.reactivex.rxjava3.core.Observer;
|
||||||
|
import io.reactivex.rxjava3.disposables.Disposable;
|
||||||
|
import okhttp3.MediaType;
|
||||||
|
import okhttp3.RequestBody;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文档中心-目录管理
|
||||||
|
*/
|
||||||
|
@Route(path = PathConfig.PATH_MODULE_OA_ACTIVITY_DOCUMENT_CATEGORY_MANAGE)
|
||||||
|
public class DocumentCategoryActivity extends BaseActivity {
|
||||||
|
@BindView(R2.id.rlv_sel)
|
||||||
|
RecyclerView mRlvSel;
|
||||||
|
@BindView(R2.id.rlv_content)
|
||||||
|
RecyclerView mRlvContent;
|
||||||
|
@BindView(R2.id.csv_state)
|
||||||
|
CustomStateView mCsvState;
|
||||||
|
@BindView(R2.id.rlv_selected)
|
||||||
|
RecyclerView mRlvSelected;
|
||||||
|
@BindView(R2.id.btn_edit_type)
|
||||||
|
Button mBtnEditType;
|
||||||
|
@BindView(R2.id.btn_add_type)
|
||||||
|
Button mBtnAddType;
|
||||||
|
|
||||||
|
private List<Object> mSelCatalog = new ArrayList<>();
|
||||||
|
private SelDocTypeAdapter mTypeAdapter;
|
||||||
|
private List<DocumentTypeList> mDatas = new ArrayList<>();
|
||||||
|
private DocumentCategoryManageAdapter mAdapter;
|
||||||
|
private List<DocumentTypeList> mSelectedCatalog = new ArrayList<>();
|
||||||
|
private SelectedDocTypeAdapter mSelectedDocTypeAdapter;
|
||||||
|
|
||||||
|
private String mSelCatalogId;
|
||||||
|
private boolean mIsSingle;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected int setLayoutId() {
|
||||||
|
return R.layout.activity_document_category;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void initData() {
|
||||||
|
ButterKnife.bind(this);
|
||||||
|
mTvBaseTitle.setText("目录管理");
|
||||||
|
mIsSingle = getIntent().getBooleanExtra("isSingle", false);
|
||||||
|
initView();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 初始化视图
|
||||||
|
*/
|
||||||
|
private void initView() {
|
||||||
|
refreshView(STATE_LOAD_SUCCESS);
|
||||||
|
DocumentTypeList rootBean = new DocumentTypeList();
|
||||||
|
rootBean.setName("根目录");
|
||||||
|
rootBean.setFileCatalogueId("0");
|
||||||
|
mSelCatalog.add(rootBean);
|
||||||
|
mSelCatalogId = "0";
|
||||||
|
LinearLayoutManager manager = new LinearLayoutManager(mActivity);
|
||||||
|
manager.setOrientation(LinearLayoutManager.HORIZONTAL);
|
||||||
|
mRlvSel.setLayoutManager(manager);
|
||||||
|
mTypeAdapter = new SelDocTypeAdapter(mActivity, mSelCatalog);
|
||||||
|
mRlvSel.setAdapter(mTypeAdapter);
|
||||||
|
mAdapter = new DocumentCategoryManageAdapter(mActivity, mDatas, 1);
|
||||||
|
mRlvContent.setLayoutManager(new LinearLayoutManager(mActivity));
|
||||||
|
mRlvContent.addItemDecoration(new ItemSplitDivider(mActivity, LinearLayoutManager.VERTICAL, 1, Color.parseColor("#F4F4F4")));
|
||||||
|
mRlvContent.setAdapter(mAdapter);
|
||||||
|
mCsvState.setState(CustomStateView.STATE_LOAD);
|
||||||
|
mTvPublish.setVisibility(View.GONE);
|
||||||
|
|
||||||
|
getCataLogList();
|
||||||
|
mAdapter.addOnItemCheckChange(new DocumentCategoryManageAdapter.OnItemCheckChange() {
|
||||||
|
@Override
|
||||||
|
public void onItemCheckChange(DocumentTypeList bean, boolean isCheck, int pos) {
|
||||||
|
if (mIsSingle) {
|
||||||
|
mSelectedCatalog.clear();
|
||||||
|
}
|
||||||
|
for (int i = 0; i < mDatas.size(); i++) {
|
||||||
|
if (bean.getFileCatalogueId().equals(mDatas.get(i).getFileCatalogueId())) {
|
||||||
|
mDatas.get(i).setChecked(isCheck);
|
||||||
|
} else {
|
||||||
|
if (mIsSingle) {
|
||||||
|
mDatas.get(i).setChecked(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
mAdapter.notifyDataSetChanged();
|
||||||
|
if (isCheck) {
|
||||||
|
mSelectedCatalog.add(bean);
|
||||||
|
} else {
|
||||||
|
Iterator<DocumentTypeList> iterator = mSelectedCatalog.iterator();
|
||||||
|
while (iterator.hasNext()) {
|
||||||
|
DocumentTypeList next = iterator.next();
|
||||||
|
if (next.getFileCatalogueId().equals(bean.getFileCatalogueId())) {
|
||||||
|
iterator.remove();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
mSelectedDocTypeAdapter.setData(mSelectedCatalog);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onLowerDept(DocumentTypeList bean, int pos) {
|
||||||
|
//添加到当前选中的集合中
|
||||||
|
mSelCatalog.add(bean);
|
||||||
|
mTypeAdapter.setData(mSelCatalog);
|
||||||
|
mSelCatalogId = bean.getFileCatalogueId();
|
||||||
|
mCsvState.setState(CustomStateView.STATE_LOAD);
|
||||||
|
getCataLogList();
|
||||||
|
//获取当前选中的下一级
|
||||||
|
mRlvSel.scrollToPosition(mSelCatalog.size() - 1);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
mTypeAdapter.setOnItemChoose((bean, pos) -> {
|
||||||
|
List<Object> departmentListBeans = mSelCatalog.subList(0, pos + 1);
|
||||||
|
mSelCatalog = departmentListBeans;
|
||||||
|
mTypeAdapter.setData(mSelCatalog);
|
||||||
|
mRlvSel.scrollToPosition(mSelCatalog.size() - 1);
|
||||||
|
if (bean instanceof DocumentTypeList) {
|
||||||
|
DocumentTypeList b = (DocumentTypeList) bean;
|
||||||
|
mSelCatalogId = b.getFileCatalogueId();
|
||||||
|
mCsvState.setState(CustomStateView.STATE_LOAD);
|
||||||
|
getCataLogList();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
//当前选中的
|
||||||
|
mSelectedDocTypeAdapter = new SelectedDocTypeAdapter(mActivity, mSelectedCatalog);
|
||||||
|
FlexboxLayoutManager manage = new FlexboxLayoutManager(mActivity, FlexDirection.ROW, FlexWrap.WRAP) {
|
||||||
|
@Override
|
||||||
|
public boolean canScrollHorizontally() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
mRlvSelected.setLayoutManager(manage);
|
||||||
|
mRlvSelected.setAdapter(mSelectedDocTypeAdapter);
|
||||||
|
mSelectedDocTypeAdapter.addOnDelListener((bean1, pos) -> {
|
||||||
|
mSelectedCatalog.remove(pos);
|
||||||
|
mSelectedDocTypeAdapter.setData(mSelectedCatalog);
|
||||||
|
for (int i = 0; i < mDatas.size(); i++) {
|
||||||
|
DocumentTypeList typeList = mDatas.get(i);
|
||||||
|
if (typeList.getFileCatalogueId().equals(bean1.getFileCatalogueId())) {
|
||||||
|
typeList.setChecked(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
mAdapter.setData(mDatas);
|
||||||
|
});
|
||||||
|
|
||||||
|
mBtnAddType.setOnClickListener(v -> {
|
||||||
|
showAddTypeDialog();
|
||||||
|
});
|
||||||
|
|
||||||
|
mBtnEditType.setOnClickListener(v -> {
|
||||||
|
int type = mAdapter.getType();
|
||||||
|
if (type == 1) {
|
||||||
|
mAdapter.setType(2);
|
||||||
|
mBtnEditType.setText("取消");
|
||||||
|
mBtnEditType.setBackground(getResources().getDrawable(R.drawable.shape_btn_nomal_gray_no_size));
|
||||||
|
} else {
|
||||||
|
mAdapter.setType(1);
|
||||||
|
mBtnEditType.setText("编辑");
|
||||||
|
mBtnEditType.setBackground(getResources().getDrawable(R.drawable.sel_btn_activity_sign_up));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
//编辑或删除
|
||||||
|
mAdapter.addOnControlListener(new DocumentCategoryManageAdapter.OnControlListener() {
|
||||||
|
@Override
|
||||||
|
public void doEdit(DocumentTypeList bean, int pos) {
|
||||||
|
showEditDialog(bean);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void doDel(DocumentTypeList bean, int pos) {
|
||||||
|
new AlertDialog.Builder(mActivity)
|
||||||
|
.setTitle("提示")
|
||||||
|
.setMessage("删除后该目录下所有文件将被删除,确定要删除该目录吗?")
|
||||||
|
.setPositiveButton("删除", (dialog, which) -> {
|
||||||
|
dialog.dismiss();
|
||||||
|
doDelType(bean);
|
||||||
|
})
|
||||||
|
.setNegativeButton("取消", (dialog, which) -> dialog.dismiss())
|
||||||
|
.create()
|
||||||
|
.show();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private void showEditDialog(DocumentTypeList bean) {
|
||||||
|
CenterDocTypeView typeDialog = new CenterDocTypeView.DialogBuilder(mActivity)
|
||||||
|
.setBean(bean)
|
||||||
|
.build();
|
||||||
|
typeDialog.addOnChoseListener((name, order, remark) -> {
|
||||||
|
//当前选中的目录
|
||||||
|
typeDialog.dismiss();
|
||||||
|
typeDialog.hideSoftKeyBoardDialog(mActivity);
|
||||||
|
doEditType(name, order, remark, bean);
|
||||||
|
});
|
||||||
|
typeDialog.show();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 编辑
|
||||||
|
*/
|
||||||
|
private void doEditType(String name, String order, String remark, DocumentTypeList bean) {
|
||||||
|
ProgressDialog dialog = UIUtil.initDialog(mActivity, "保存中...");
|
||||||
|
dialog.show();
|
||||||
|
RequestBody body = buildTypeEditParams(name, order, remark, bean);
|
||||||
|
RetrofitManager.getInstance()
|
||||||
|
.create(OAApi.class)
|
||||||
|
.doEditDocumentType(bean.getFileCatalogueId(), body)
|
||||||
|
.compose(RxTransformer.getTransformer())
|
||||||
|
.subscribe(new Observer<BaseSuccessBean>() {
|
||||||
|
@Override
|
||||||
|
public void onSubscribe(@NonNull Disposable d) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onNext(@NonNull BaseSuccessBean baseSuccessBean) {
|
||||||
|
dialog.dismiss();
|
||||||
|
ToastUtils.show("修改成功");
|
||||||
|
getCataLogList();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onError(@NonNull Throwable e) {
|
||||||
|
dialog.dismiss();
|
||||||
|
ExceptionHandler.handleException(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onComplete() {
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除
|
||||||
|
*
|
||||||
|
* @param bean
|
||||||
|
*/
|
||||||
|
private void doDelType(DocumentTypeList bean) {
|
||||||
|
ProgressDialog dialog = UIUtil.initDialog(mActivity, "删除中...");
|
||||||
|
dialog.show();
|
||||||
|
RetrofitManager.getInstance()
|
||||||
|
.create(OAApi.class)
|
||||||
|
.doDelDocumentType(bean.getFileCatalogueId())
|
||||||
|
.compose(RxTransformer.getTransformer())
|
||||||
|
.subscribe(new Observer<BaseSuccessBean>() {
|
||||||
|
@Override
|
||||||
|
public void onSubscribe(@NonNull Disposable d) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onNext(@NonNull BaseSuccessBean baseSuccessBean) {
|
||||||
|
dialog.dismiss();
|
||||||
|
ToastUtils.show("删除成功");
|
||||||
|
getCataLogList();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onError(@NonNull Throwable e) {
|
||||||
|
dialog.dismiss();
|
||||||
|
ExceptionHandler.handleException(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onComplete() {
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 显示目录添加
|
||||||
|
*/
|
||||||
|
private void showAddTypeDialog() {
|
||||||
|
CenterDocTypeView typeDialog = new CenterDocTypeView.DialogBuilder(mActivity)
|
||||||
|
.build();
|
||||||
|
typeDialog.addOnChoseListener((name, order, remark) -> {
|
||||||
|
//当前选中的目录
|
||||||
|
typeDialog.dismiss();
|
||||||
|
typeDialog.hideSoftKeyBoardDialog(mActivity);
|
||||||
|
doSaveType(name, order, remark);
|
||||||
|
});
|
||||||
|
typeDialog.show();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 保存目录
|
||||||
|
*/
|
||||||
|
private void doSaveType(String name, String order, String remark) {
|
||||||
|
ProgressDialog dialog = UIUtil.initDialog(mActivity, "保存中...");
|
||||||
|
dialog.show();
|
||||||
|
RequestBody body = buildTypeParams(name, order, remark);
|
||||||
|
RetrofitManager.getInstance()
|
||||||
|
.create(OAApi.class)
|
||||||
|
.doSaveDocumentType(body)
|
||||||
|
.compose(RxTransformer.getTransformer())
|
||||||
|
.subscribe(new Observer<BaseSuccessBean>() {
|
||||||
|
@Override
|
||||||
|
public void onSubscribe(@NonNull Disposable d) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onNext(@NonNull BaseSuccessBean baseSuccessBean) {
|
||||||
|
dialog.dismiss();
|
||||||
|
ToastUtils.show("保存成功");
|
||||||
|
//刷新
|
||||||
|
getCataLogList();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onError(@NonNull Throwable e) {
|
||||||
|
dialog.dismiss();
|
||||||
|
ExceptionHandler.handleException(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onComplete() {
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private RequestBody buildTypeParams(String name, String order, String remark) {
|
||||||
|
SaveDocumentTypeBean bean = new SaveDocumentTypeBean();
|
||||||
|
bean.setName(name);
|
||||||
|
bean.setSortNum(Integer.parseInt(order));
|
||||||
|
bean.setRemake(remark);
|
||||||
|
bean.setType("0");
|
||||||
|
bean.setViewRange("0");
|
||||||
|
Object o = mSelCatalog.get(mSelCatalog.size() - 1);
|
||||||
|
DocumentTypeList b = (DocumentTypeList) o;
|
||||||
|
bean.setParentId(b.getFileCatalogueId());
|
||||||
|
return RequestBody.create(new Gson().toJson(bean), MediaType.parse("application/json; charset=utf-8"));
|
||||||
|
}
|
||||||
|
|
||||||
|
private RequestBody buildTypeEditParams(String name, String order, String remark, DocumentTypeList b) {
|
||||||
|
SaveDocumentTypeBean bean = new SaveDocumentTypeBean();
|
||||||
|
bean.setName(name);
|
||||||
|
bean.setSortNum(Integer.parseInt(order));
|
||||||
|
bean.setRemake(remark);
|
||||||
|
bean.setType("0");
|
||||||
|
bean.setViewRange("0");
|
||||||
|
bean.setParentId(b.getParentId());
|
||||||
|
return RequestBody.create(new Gson().toJson(bean), MediaType.parse("application/json; charset=utf-8"));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 确认选择
|
||||||
|
*/
|
||||||
|
private void doConfirm() {
|
||||||
|
if (mSelectedCatalog != null && mSelectedCatalog.size() > 0) {
|
||||||
|
if (mIsSingle) {
|
||||||
|
DocumentTypeList bean = mSelectedCatalog.get(0);
|
||||||
|
Intent intent = new Intent();
|
||||||
|
intent.putExtra("bean", bean);
|
||||||
|
setResult(RESULT_OK, intent);
|
||||||
|
finish();
|
||||||
|
} else {
|
||||||
|
String ids = "";
|
||||||
|
String names = "";
|
||||||
|
for (int i = 0; i < mSelectedCatalog.size(); i++) {
|
||||||
|
DocumentTypeList bean = mSelectedCatalog.get(i);
|
||||||
|
ids += bean.getFileCatalogueId() + ",";
|
||||||
|
names += bean.getName() + ",";
|
||||||
|
}
|
||||||
|
ids = ids.substring(0, ids.length() - 1);
|
||||||
|
names = names.substring(0, names.length() - 1);
|
||||||
|
Intent intent = new Intent();
|
||||||
|
intent.putExtra("name", names);
|
||||||
|
intent.putExtra("id", ids);
|
||||||
|
setResult(RESULT_OK, intent);
|
||||||
|
finish();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
ToastUtils.show("请选择目录");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取目录列表
|
||||||
|
*/
|
||||||
|
private void getCataLogList() {
|
||||||
|
mCsvState.setState(CustomStateView.STATE_LOAD);
|
||||||
|
mDatas.clear();
|
||||||
|
mAdapter.setData(mDatas);
|
||||||
|
RetrofitManager.getInstance()
|
||||||
|
.create(OAApi.class)
|
||||||
|
.getDocumentTypeListByPid(mSelCatalogId, "0")
|
||||||
|
.compose(RxTransformer.getTransformer())
|
||||||
|
.subscribe(new Observer<List<DocumentTypeList>>() {
|
||||||
|
@Override
|
||||||
|
public void onSubscribe(@NonNull Disposable d) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onNext(@NonNull List<DocumentTypeList> documentTypeLists) {
|
||||||
|
if (documentTypeLists.size() > 0) {
|
||||||
|
mCsvState.setState(CustomStateView.STATE_SUCCESS);
|
||||||
|
mDatas.addAll(documentTypeLists);
|
||||||
|
for (int i = 0; i < mSelectedCatalog.size(); i++) {
|
||||||
|
DocumentTypeList selBean = mSelectedCatalog.get(i);
|
||||||
|
for (int j = 0; j < mDatas.size(); j++) {
|
||||||
|
DocumentTypeList bean = mDatas.get(j);
|
||||||
|
if (selBean.getFileCatalogueId().equals(bean.getFileCatalogueId())) {
|
||||||
|
bean.setChecked(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
mCsvState.setState(CustomStateView.STATE_EMPTY);
|
||||||
|
}
|
||||||
|
mAdapter.setData(mDatas);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onError(@NonNull Throwable e) {
|
||||||
|
ExceptionHandler.handleException(e);
|
||||||
|
mAdapter.setData(mDatas);
|
||||||
|
mCsvState.setState(CustomStateView.STATE_ERROR);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onComplete() {
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void doSearchByTitle() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void clearSearch() {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,91 @@
|
|||||||
|
package com.tenlionsoft.oamodule.adapter;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
|
import com.tenlionsoft.baselib.core.widget.base.BaseRecyclerAdapter;
|
||||||
|
import com.tenlionsoft.oamodule.R;
|
||||||
|
import com.tenlionsoft.oamodule.beans.DeptBean;
|
||||||
|
import com.tenlionsoft.oamodule.beans.DocumentTypeList;
|
||||||
|
import com.tenlionsoft.oamodule.holder.DocumentCategoryManageHolder;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 作者: adam
|
||||||
|
* 日期: 2020/11/24 - 9:16 AM
|
||||||
|
* 邮箱: itgaojian@163.com
|
||||||
|
* 描述: 文档目录管理
|
||||||
|
*/
|
||||||
|
public class DocumentCategoryManageAdapter extends BaseRecyclerAdapter<DocumentTypeList, DocumentCategoryManageHolder> {
|
||||||
|
public List<DeptBean> mSelBeans = new ArrayList<>();
|
||||||
|
public int mType = 1;
|
||||||
|
|
||||||
|
public DocumentCategoryManageAdapter(Context ctx, List<DocumentTypeList> list, int type) {
|
||||||
|
super(ctx, list);
|
||||||
|
this.mType = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public DocumentCategoryManageHolder createHolder(ViewGroup parent, int viewType) {
|
||||||
|
View itemView = LayoutInflater.from(mContext).inflate(R.layout.item_category_manage, parent, false);
|
||||||
|
return new DocumentCategoryManageHolder(itemView);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setType(int type) {
|
||||||
|
this.mType = type;
|
||||||
|
notifyDataSetChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getType() {
|
||||||
|
return mType;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void bindHolder(DocumentCategoryManageHolder holder, int i) {
|
||||||
|
DocumentTypeList bean = mData.get(i);
|
||||||
|
holder.mTvName.setText(bean.getName());
|
||||||
|
holder.mTvName.setOnClickListener(v -> mLis.onLowerDept(bean, i));
|
||||||
|
if (mType == 1) {
|
||||||
|
//默认选择
|
||||||
|
holder.mLlBtns.setVisibility(View.GONE);
|
||||||
|
holder.mIvArrow.setVisibility(View.VISIBLE);
|
||||||
|
} else {
|
||||||
|
//编辑
|
||||||
|
holder.mLlBtns.setVisibility(View.VISIBLE);
|
||||||
|
holder.mIvArrow.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
|
if (mControlListener != null) {
|
||||||
|
holder.mBtnDel.setOnClickListener(v -> mControlListener.doDel(bean, i));
|
||||||
|
holder.mBtnEdit.setOnClickListener(v -> mControlListener.doEdit(bean, i));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private OnItemCheckChange mLis;
|
||||||
|
|
||||||
|
public void addOnItemCheckChange(OnItemCheckChange lis) {
|
||||||
|
this.mLis = lis;
|
||||||
|
}
|
||||||
|
|
||||||
|
public interface OnItemCheckChange {
|
||||||
|
void onItemCheckChange(DocumentTypeList bean, boolean isCheck, int pos);
|
||||||
|
|
||||||
|
void onLowerDept(DocumentTypeList bean, int pos);
|
||||||
|
}
|
||||||
|
|
||||||
|
private OnControlListener mControlListener;
|
||||||
|
|
||||||
|
public void addOnControlListener(OnControlListener listener) {
|
||||||
|
this.mControlListener = listener;
|
||||||
|
}
|
||||||
|
|
||||||
|
public interface OnControlListener {
|
||||||
|
void doEdit(DocumentTypeList bean, int pos);
|
||||||
|
|
||||||
|
void doDel(DocumentTypeList bean, int pos);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,61 @@
|
|||||||
|
package com.tenlionsoft.oamodule.adapter;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
|
import com.bumptech.glide.Glide;
|
||||||
|
import com.tenlionsoft.baselib.core.widget.base.BaseRecyclerAdapter;
|
||||||
|
import com.tenlionsoft.oamodule.R;
|
||||||
|
import com.tenlionsoft.oamodule.beans.DocTypeTreeListBean;
|
||||||
|
import com.tenlionsoft.oamodule.beans.DocumentListBean;
|
||||||
|
import com.tenlionsoft.oamodule.beans.DocumentTypeList;
|
||||||
|
import com.tenlionsoft.oamodule.holder.FileGridHolder;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 作者: adam
|
||||||
|
* 日期: 2022/4/12 - 10:42 上午
|
||||||
|
* 邮箱: itgaojian@163.com
|
||||||
|
* 描述: 文档宫格排列
|
||||||
|
*/
|
||||||
|
public class DocumentGridAdapter extends BaseRecyclerAdapter<Object, FileGridHolder> {
|
||||||
|
public DocumentGridAdapter(Context ctx, List<Object> list) {
|
||||||
|
super(ctx, list);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FileGridHolder createHolder(ViewGroup parent, int viewType) {
|
||||||
|
View itemView = LayoutInflater.from(mContext).inflate(R.layout.item_document_grid, parent, false);
|
||||||
|
return new FileGridHolder(itemView);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void bindHolder(FileGridHolder h, int i) {
|
||||||
|
Object o = mData.get(i);
|
||||||
|
if (o instanceof DocumentListBean.RowsBean) {
|
||||||
|
DocumentListBean.RowsBean b = (DocumentListBean.RowsBean) o;
|
||||||
|
Glide.with(mContext)
|
||||||
|
.load(R.drawable.ic_file_word_new)
|
||||||
|
.into(h.mIvIcon);
|
||||||
|
h.mTvName.setText(b.getContent());
|
||||||
|
h.mTvFileType.setText(b.getFileType());
|
||||||
|
} else if (o instanceof DocumentTypeList) {
|
||||||
|
DocumentTypeList b = (DocumentTypeList) o;
|
||||||
|
Glide.with(mContext)
|
||||||
|
.load(R.drawable.ic_folder_icon)
|
||||||
|
.into(h.mIvIcon);
|
||||||
|
h.mTvName.setText(b.getName());
|
||||||
|
h.mTvFileType.setText(b.getRemake());
|
||||||
|
} else if (o instanceof DocTypeTreeListBean) {
|
||||||
|
DocTypeTreeListBean b = (DocTypeTreeListBean) o;
|
||||||
|
Glide.with(mContext)
|
||||||
|
.load(R.drawable.ic_folder_icon)
|
||||||
|
.into(h.mIvIcon);
|
||||||
|
h.mTvName.setText(b.getName());
|
||||||
|
h.mTvFileType.setText("");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -17,6 +17,12 @@ import android.widget.RadioGroup;
|
|||||||
import android.widget.RelativeLayout;
|
import android.widget.RelativeLayout;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import androidx.activity.result.ActivityResultLauncher;
|
||||||
|
import androidx.activity.result.contract.ActivityResultContracts;
|
||||||
|
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.facade.annotation.Route;
|
||||||
import com.bigkoo.pickerview.builder.OptionsPickerBuilder;
|
import com.bigkoo.pickerview.builder.OptionsPickerBuilder;
|
||||||
import com.bigkoo.pickerview.view.OptionsPickerView;
|
import com.bigkoo.pickerview.view.OptionsPickerView;
|
||||||
@ -28,6 +34,7 @@ import com.tenlionsoft.baselib.core.beans.OperateBean;
|
|||||||
import com.tenlionsoft.baselib.core.retrofit_net.RetrofitManager;
|
import com.tenlionsoft.baselib.core.retrofit_net.RetrofitManager;
|
||||||
import com.tenlionsoft.baselib.core.retrofit_net.conver.RxTransformer;
|
import com.tenlionsoft.baselib.core.retrofit_net.conver.RxTransformer;
|
||||||
import com.tenlionsoft.baselib.core.widget.base.BaseFragment;
|
import com.tenlionsoft.baselib.core.widget.base.BaseFragment;
|
||||||
|
import com.tenlionsoft.baselib.core.widget.views.OperatePopup;
|
||||||
import com.tenlionsoft.baselib.core.widget.views.TypeFaceTextView;
|
import com.tenlionsoft.baselib.core.widget.views.TypeFaceTextView;
|
||||||
import com.tenlionsoft.baselib.utils.ExceptionHandler;
|
import com.tenlionsoft.baselib.utils.ExceptionHandler;
|
||||||
import com.tenlionsoft.baselib.utils.LogUtils;
|
import com.tenlionsoft.baselib.utils.LogUtils;
|
||||||
@ -35,8 +42,9 @@ import com.tenlionsoft.baselib.utils.UIUtil;
|
|||||||
import com.tenlionsoft.oamodule.R;
|
import com.tenlionsoft.oamodule.R;
|
||||||
import com.tenlionsoft.oamodule.R2;
|
import com.tenlionsoft.oamodule.R2;
|
||||||
import com.tenlionsoft.oamodule.activity.document.DocumentAddActivity;
|
import com.tenlionsoft.oamodule.activity.document.DocumentAddActivity;
|
||||||
|
import com.tenlionsoft.oamodule.activity.document.DocumentCategoryActivity;
|
||||||
import com.tenlionsoft.oamodule.activity.document.DocumentDetailActivity;
|
import com.tenlionsoft.oamodule.activity.document.DocumentDetailActivity;
|
||||||
import com.tenlionsoft.oamodule.adapter.DocumentAdapter;
|
import com.tenlionsoft.oamodule.adapter.DocumentGridAdapter;
|
||||||
import com.tenlionsoft.oamodule.adapter.SelDocTypeAdapter;
|
import com.tenlionsoft.oamodule.adapter.SelDocTypeAdapter;
|
||||||
import com.tenlionsoft.oamodule.beans.DocTypeBean;
|
import com.tenlionsoft.oamodule.beans.DocTypeBean;
|
||||||
import com.tenlionsoft.oamodule.beans.DocTypeTreeListBean;
|
import com.tenlionsoft.oamodule.beans.DocTypeTreeListBean;
|
||||||
@ -49,10 +57,6 @@ import org.jetbrains.annotations.NotNull;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import androidx.activity.result.ActivityResultLauncher;
|
|
||||||
import androidx.activity.result.contract.ActivityResultContracts;
|
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
|
||||||
import butterknife.BindView;
|
import butterknife.BindView;
|
||||||
import butterknife.ButterKnife;
|
import butterknife.ButterKnife;
|
||||||
import butterknife.Unbinder;
|
import butterknife.Unbinder;
|
||||||
@ -106,7 +110,7 @@ public class DocFragment extends BaseFragment {
|
|||||||
private Unbinder mBind;
|
private Unbinder mBind;
|
||||||
|
|
||||||
private List<Object> mDatas;
|
private List<Object> mDatas;
|
||||||
private DocumentAdapter mAdapter;
|
private DocumentGridAdapter mAdapter;
|
||||||
private int mCurrentPage = 1;
|
private int mCurrentPage = 1;
|
||||||
private String mKeywords = "";
|
private String mKeywords = "";
|
||||||
private String mType = "个人文档";//个人文档 共享文档 公共文档
|
private String mType = "个人文档";//个人文档 共享文档 公共文档
|
||||||
@ -115,7 +119,8 @@ public class DocFragment extends BaseFragment {
|
|||||||
private OptionsPickerView mDataSourcePicker;
|
private OptionsPickerView mDataSourcePicker;
|
||||||
private List<DocTypeBean> mDocTypes;
|
private List<DocTypeBean> mDocTypes;
|
||||||
private DocTypeBean mSelType;
|
private DocTypeBean mSelType;
|
||||||
private ActivityResultLauncher<Intent> mLauncher;
|
private ActivityResultLauncher<Intent> mLauncher;//添加文件
|
||||||
|
private ActivityResultLauncher<Intent> mCategoryLauncher;//管理目录
|
||||||
private List<OperateBean> mControls;
|
private List<OperateBean> mControls;
|
||||||
private List<Object> mSelCatalog = new ArrayList<>();//选中的文档目录
|
private List<Object> mSelCatalog = new ArrayList<>();//选中的文档目录
|
||||||
private SelDocTypeAdapter mSelCatalogAdapter;
|
private SelDocTypeAdapter mSelCatalogAdapter;
|
||||||
@ -169,8 +174,10 @@ public class DocFragment extends BaseFragment {
|
|||||||
mSrlContent.setOnLoadMoreListener(v -> doLoadMore());
|
mSrlContent.setOnLoadMoreListener(v -> doLoadMore());
|
||||||
mSrlContent.setOnRefreshListener(v -> doRefresh());
|
mSrlContent.setOnRefreshListener(v -> doRefresh());
|
||||||
mDatas = new ArrayList<>();
|
mDatas = new ArrayList<>();
|
||||||
mAdapter = new DocumentAdapter(mActivity, mDatas);
|
mAdapter = new DocumentGridAdapter(mActivity, mDatas);
|
||||||
mRlvDoc.setLayoutManager(new LinearLayoutManager(mActivity));
|
|
||||||
|
// mRlvDoc.setLayoutManager(new LinearLayoutManager(mActivity));
|
||||||
|
mRlvDoc.setLayoutManager(new GridLayoutManager(mActivity, 4));
|
||||||
mRlvDoc.setAdapter(mAdapter);
|
mRlvDoc.setAdapter(mAdapter);
|
||||||
mAdapter.addOnItemClickListener(rowsBean -> {
|
mAdapter.addOnItemClickListener(rowsBean -> {
|
||||||
if (rowsBean instanceof DocTypeTreeListBean) {
|
if (rowsBean instanceof DocTypeTreeListBean) {
|
||||||
@ -213,7 +220,9 @@ public class DocFragment extends BaseFragment {
|
|||||||
mKeywords = "";
|
mKeywords = "";
|
||||||
doRefresh();
|
doRefresh();
|
||||||
});
|
});
|
||||||
mIvAdd.setOnClickListener(v -> mLauncher.launch(new Intent(mActivity, DocumentAddActivity.class)));
|
// 直接添加文件
|
||||||
|
// mIvAdd.setOnClickListener(v -> mLauncher.launch(new Intent(mActivity, DocumentAddActivity.class)));
|
||||||
|
mIvAdd.setOnClickListener(v -> onShowOperatePopup());
|
||||||
setTouchDelegate(mIvAdd, 25);
|
setTouchDelegate(mIvAdd, 25);
|
||||||
// mTvTitleType.setOnClickListener(v -> onShowDocType());
|
// mTvTitleType.setOnClickListener(v -> onShowDocType());
|
||||||
// mTvTitleType.setText("文档中心");
|
// mTvTitleType.setText("文档中心");
|
||||||
@ -246,6 +255,16 @@ public class DocFragment extends BaseFragment {
|
|||||||
mSelCatalogId = "0";
|
mSelCatalogId = "0";
|
||||||
mSelCatalog.add(mRootPersonBean);
|
mSelCatalog.add(mRootPersonBean);
|
||||||
doRefresh();
|
doRefresh();
|
||||||
|
|
||||||
|
mControls = new ArrayList<>();
|
||||||
|
OperateBean addFileBean = new OperateBean();
|
||||||
|
addFileBean.setId("addFile");
|
||||||
|
addFileBean.setName("文档上传");
|
||||||
|
mControls.add(addFileBean);
|
||||||
|
OperateBean manageCategoryBean = new OperateBean();
|
||||||
|
manageCategoryBean.setId("manageCategory");
|
||||||
|
manageCategoryBean.setName("目录管理");
|
||||||
|
mControls.add(manageCategoryBean);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -266,6 +285,25 @@ public class DocFragment extends BaseFragment {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 显示操作
|
||||||
|
*/
|
||||||
|
private void onShowOperatePopup() {
|
||||||
|
OperatePopup popup = new OperatePopup(mActivity, mControls);
|
||||||
|
popup.addOnCheckChange((bean) -> {
|
||||||
|
popup.dismiss();
|
||||||
|
switch (bean.getId()) {
|
||||||
|
case "addFile"://添加文件
|
||||||
|
mLauncher.launch(new Intent(mActivity, DocumentAddActivity.class));
|
||||||
|
break;
|
||||||
|
case "manageCategory"://目录管理
|
||||||
|
mCategoryLauncher.launch(new Intent(mActivity, DocumentCategoryActivity.class));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
popup.setOffsetX(-70);
|
||||||
|
popup.showPopupWindow(mIvAdd);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 显示文档类型
|
* 显示文档类型
|
||||||
@ -347,6 +385,11 @@ public class DocFragment extends BaseFragment {
|
|||||||
doRefresh();
|
doRefresh();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
mCategoryLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> {
|
||||||
|
if (Activity.RESULT_OK == result.getResultCode()) {
|
||||||
|
doRefresh();
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -0,0 +1,37 @@
|
|||||||
|
package com.tenlionsoft.oamodule.holder;
|
||||||
|
|
||||||
|
import android.view.View;
|
||||||
|
import android.widget.Button;
|
||||||
|
import android.widget.ImageView;
|
||||||
|
import android.widget.LinearLayout;
|
||||||
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
|
import com.tenlionsoft.baselib.core.widget.base.BaseViewHolder;
|
||||||
|
import com.tenlionsoft.oamodule.R2;
|
||||||
|
|
||||||
|
import butterknife.BindView;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 作者: adam
|
||||||
|
* 日期: 2020/11/24 - 9:10 AM
|
||||||
|
* 邮箱: itgaojian@163.com
|
||||||
|
* 描述: 文档目录
|
||||||
|
*/
|
||||||
|
public class DocumentCategoryManageHolder extends BaseViewHolder {
|
||||||
|
@BindView(R2.id.tv_name)
|
||||||
|
public TextView mTvName;
|
||||||
|
@BindView(R2.id.iv_arrow)
|
||||||
|
public ImageView mIvArrow;
|
||||||
|
@BindView(R2.id.ll_btns)
|
||||||
|
public LinearLayout mLlBtns;
|
||||||
|
@BindView(R2.id.btn_edit)
|
||||||
|
public Button mBtnEdit;
|
||||||
|
@BindView(R2.id.btn_del)
|
||||||
|
public Button mBtnDel;
|
||||||
|
|
||||||
|
public DocumentCategoryManageHolder(@NonNull View itemView) {
|
||||||
|
super(itemView);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,33 @@
|
|||||||
|
package com.tenlionsoft.oamodule.holder;
|
||||||
|
|
||||||
|
import android.view.View;
|
||||||
|
import android.widget.ImageView;
|
||||||
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
|
import com.tenlionsoft.baselib.core.widget.base.BaseViewHolder;
|
||||||
|
import com.tenlionsoft.oamodule.R2;
|
||||||
|
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
import butterknife.BindView;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 作者: adam
|
||||||
|
* 日期: 2022/4/12 - 10:39 上午
|
||||||
|
* 邮箱: itgaojian@163.com
|
||||||
|
* 描述:
|
||||||
|
*/
|
||||||
|
public class FileGridHolder extends BaseViewHolder {
|
||||||
|
@BindView(R2.id.tv_name)
|
||||||
|
public TextView mTvName;
|
||||||
|
@BindView(R2.id.tv_file_type)
|
||||||
|
public TextView mTvFileType;
|
||||||
|
@BindView(R2.id.iv_icon)
|
||||||
|
public ImageView mIvIcon;
|
||||||
|
|
||||||
|
public FileGridHolder(@NonNull @NotNull View itemView) {
|
||||||
|
super(itemView);
|
||||||
|
}
|
||||||
|
}
|
81
oamodule/src/main/res/layout/activity_document_category.xml
Normal file
81
oamodule/src/main/res/layout/activity_document_category.xml
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:background="@color/gray_f2"
|
||||||
|
android:orientation="vertical"
|
||||||
|
tools:context=".activity.document.ChooseDocTypeActivity">
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
android:id="@+id/rlv_sel"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginLeft="10dp"
|
||||||
|
android:layout_marginTop="5dp"
|
||||||
|
android:layout_marginRight="10dp"
|
||||||
|
android:background="@color/gray_f8"
|
||||||
|
tools:itemCount="1"
|
||||||
|
tools:listitem="@layout/item_dept_sel_layout" />
|
||||||
|
|
||||||
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
android:id="@+id/rlv_selected"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginLeft="10dp"
|
||||||
|
android:layout_marginTop="5dp"
|
||||||
|
android:visibility="gone"
|
||||||
|
android:layout_marginRight="10dp"
|
||||||
|
android:background="@color/gray_f8"
|
||||||
|
android:padding="5dp" />
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
android:id="@+id/rlv_content"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="10dp"
|
||||||
|
android:layout_marginTop="10dp"
|
||||||
|
android:layout_marginEnd="10dp"
|
||||||
|
android:layout_marginBottom="65dp"
|
||||||
|
android:background="@color/gray_f8"
|
||||||
|
tools:listitem="@layout/item_choose_doc_type" />
|
||||||
|
|
||||||
|
<com.tenlionsoft.baselib.core.widget.views.CustomStateView
|
||||||
|
android:id="@+id/csv_state"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_centerInParent="true" />
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignParentBottom="true"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:padding="10dp">
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/btn_add_type"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:background="@drawable/sel_btn_blue_gray_cir"
|
||||||
|
android:text="新增"
|
||||||
|
android:textColor="@color/col_white_gray_press" />
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/btn_edit_type"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginLeft="10dp"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:background="@drawable/sel_btn_activity_sign_up"
|
||||||
|
android:text="编辑"
|
||||||
|
android:textColor="@color/col_white_gray_press" />
|
||||||
|
</LinearLayout>
|
||||||
|
</RelativeLayout>
|
||||||
|
</LinearLayout>
|
@ -112,17 +112,18 @@
|
|||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:layout_marginLeft="10dp"
|
android:layout_marginLeft="10dp"
|
||||||
android:layout_marginTop="5dp"
|
android:layout_marginTop="5dp"
|
||||||
android:layout_marginRight="10dp">
|
android:layout_marginRight="10dp"
|
||||||
|
android:layout_marginBottom="10dp">
|
||||||
|
|
||||||
<RelativeLayout
|
<RelativeLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent"
|
||||||
|
android:background="@color/white">
|
||||||
|
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
android:id="@+id/rlv_doc"
|
android:id="@+id/rlv_doc"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="match_parent" />
|
||||||
android:background="@color/white" />
|
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/ll_hint"
|
android:id="@+id/ll_hint"
|
||||||
|
72
oamodule/src/main/res/layout/item_category_manage.xml
Normal file
72
oamodule/src/main/res/layout/item_category_manage.xml
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_margin="5dp"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<com.tenlionsoft.baselib.core.widget.views.TypeFaceTextView
|
||||||
|
android:id="@+id/tv_name"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:clickable="true"
|
||||||
|
android:drawableLeft="@drawable/ic_folder_icon"
|
||||||
|
android:drawablePadding="10dp"
|
||||||
|
android:focusable="true"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:padding="10dp"
|
||||||
|
android:textColor="@color/black"
|
||||||
|
android:textSize="15sp"
|
||||||
|
tools:text="测试" />
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/iv_arrow"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:src="@drawable/ic_arrow_cir" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/ll_btns"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:padding="5dp">
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/btn_del"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:background="@drawable/sel_btn_red_gray_re_5"
|
||||||
|
android:minWidth="0dp"
|
||||||
|
android:minHeight="0dp"
|
||||||
|
android:padding="5dp"
|
||||||
|
android:text="删除"
|
||||||
|
android:textColor="@color/col_white_gray_press"
|
||||||
|
android:textSize="@dimen/text_12" />
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/btn_edit"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="5dp"
|
||||||
|
android:background="@drawable/sel_btn_blue_gray_re_5"
|
||||||
|
android:minWidth="0dp"
|
||||||
|
android:minHeight="0dp"
|
||||||
|
android:padding="5dp"
|
||||||
|
android:text="编辑"
|
||||||
|
android:textColor="@color/col_white_gray_press"
|
||||||
|
android:textSize="@dimen/text_12" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</LinearLayout>
|
@ -4,7 +4,6 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_margin="5dp"
|
android:layout_margin="5dp"
|
||||||
android:background="@drawable/shape_rectangle_white"
|
|
||||||
android:gravity="center_vertical"
|
android:gravity="center_vertical"
|
||||||
android:orientation="horizontal"
|
android:orientation="horizontal"
|
||||||
android:padding="2dp">
|
android:padding="2dp">
|
||||||
|
47
oamodule/src/main/res/layout/item_document_grid.xml
Normal file
47
oamodule/src/main/res/layout/item_document_grid.xml
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:background="@color/white"
|
||||||
|
android:gravity="center"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:padding="10dp">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/iv_icon"
|
||||||
|
android:layout_width="25dp"
|
||||||
|
android:layout_height="25dp"
|
||||||
|
android:scaleType="fitXY"
|
||||||
|
tools:src="@drawable/ic_folder_icon" />
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="5dp"
|
||||||
|
android:gravity="center"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<com.tenlionsoft.baselib.core.widget.views.TypeFaceTextView
|
||||||
|
android:id="@+id/tv_name"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:ellipsize="end"
|
||||||
|
android:maxLines="2"
|
||||||
|
android:minLines="2"
|
||||||
|
android:textColor="@color/black"
|
||||||
|
android:textSize="@dimen/text_12"
|
||||||
|
tools:text="文档名称" />
|
||||||
|
|
||||||
|
<com.tenlionsoft.baselib.core.widget.views.TypeFaceTextView
|
||||||
|
android:id="@+id/tv_file_type"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="5dp"
|
||||||
|
android:ellipsize="end"
|
||||||
|
android:maxLines="1"
|
||||||
|
android:textSize="@dimen/text_12"
|
||||||
|
android:visibility="gone"
|
||||||
|
tools:text="文件类型" />
|
||||||
|
</LinearLayout>
|
||||||
|
</LinearLayout>
|
Loading…
Reference in New Issue
Block a user