Commit 08f8241b authored by 小费同学阿's avatar 小费同学阿 💬 Committed by 杨秀秀

企业App 诉求添加+详情功能实现(但是差操作日志的回显)

parent c88b1ac4
......@@ -84,6 +84,11 @@
android:name=".ui.recruitment.RecruitmentActivity"
android:exported="true" />
<!-- 诉求详情-->
<activity
android:name=".ui.appeal.AppealDetailActivity"
android:exported="true"/>
<!--商户审核列表-->
<activity android:name=".ui.merchantaudit.MerchantAuditListActivity"
android:exported="true">
......
......@@ -3,6 +3,7 @@ package com.xx.hbhbcompany.data.http.requst
import androidx.databinding.ObservableField
import com.xx.hbhbcompany.data.http.BaseRespons
import com.xx.hbhbcompany.data.http.requst.body.AppealBody
import com.xx.hbhbcompany.data.http.requst.body.AppealEditBody
import com.xx.hbhbcompany.data.http.requst.body.Brankbody
import com.xx.hbhbcompany.data.http.respons.AppealBean
import com.xx.hbhbcompany.data.http.respons.AppealTypeBean
......@@ -19,6 +20,27 @@ import me.goldze.mvvmhabit.http.BaseResponse
class AppealRequest : BaseRespons() {
/**
* 获取诉求详情
*/
fun getAppealDetailById(): Observable<BaseResponse<AppealBean>> {
return apiService.getAppealDetailById("15f29fe32d1670bc3a931923c34636b4");
}
/*修改诉求*/
/*依次传入1-类型 2-商户 3-反馈人 4-联系方式 5-诉求描述 6-上传图片*/
fun postEditAppeal(
businessId: String,
dictSort: String,
merchantId:String,
appealPerson:String,
appealPhone:String,
appealDescribe:String,
uploadImgs: List<String>
): Observable<BaseResponse<Boolean>> {
val body: AppealEditBody = AppealEditBody(businessId,dictSort,merchantId,appealPerson,appealPhone, appealDescribe,uploadImgs,"1")
return apiService.postEditAppeal(ApiParams<AppealEditBody>().setParams(body))
}
/*创建诉求*/
/*依次传入1-类型 2-反馈人 3-商户 4-联系方式 5-诉求描述 6-上传图片 7-处理部门*/
fun addAppeal(
......
package com.xx.hbhbcompany.data.http.requst.body
class AppealEditBody(
var businessId: String = "",//主键id
var appealType: String = "",//诉求类型:0-报修,1-其他
var merchantId: String? = "",//诉求商户id
var feedbackPerson: String = "",//反馈人
var contactMode: String = "",//联系方式
var literalDescription: String = "",//诉求描述
var uploadPictures: List<String>,//上传图片
var appealStatus: String = "",//诉求状态
) {
}
\ No newline at end of file
......@@ -3,6 +3,20 @@ package com.xx.hbhbcompany.data.http.respons
open class AppealBean (
/*反馈类型*/
var appAppealType: Int,
/*反馈人*/
var feedbackPerson: String,
/*所属商户*/
var merchant: MerchantBean,
/*所属商户id*/
var merchantId: String,
/*联系方式*/
var contactMode: String,
/*诉求描述*/
var literalDescription: String,
/*上传的图片*/
var appealFiles: List<AppealFilesBean>?,
var auditStatus:String?,
var TypeId:String,//展位id
var brandAuthorizationList:List<BrankBean>?,//品牌授权列表
......
package com.xx.hbhbcompany.data.http.respons
class AppealFilesBean(
var id: String?,
var path: String?,
var filePath: String,
) {
}
\ No newline at end of file
package com.xx.hbhbcompany.fragment.adapter;
import static com.xx.hbhbcompany.utils.RetrofitClient.baseImgUrl;
import android.content.Context;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
import com.bumptech.glide.request.RequestOptions;
import com.xx.hbhbcompany.R;
import com.xx.hbhbcompany.data.http.respons.AppealFilesBean;
import com.xx.hbhbcompany.databinding.ItemAppealDetailBinding;
import com.xx.xxviewlibrary.base.xxBaseRecyclerViewAdapter;
import me.jessyan.autosize.utils.AutoSizeUtils;
public class AppealDetailListAdapter extends xxBaseRecyclerViewAdapter<ItemAppealDetailBinding, AppealFilesBean> {
public AppealDetailListAdapter(Context mContext) {
super(mContext);
}
@Override
public int initLayout() {
return R.layout.item_appeal_detail;
}
@Override
protected void covert(ItemAppealDetailBinding dataBind, AppealFilesBean data, int position) {
RequestOptions options = new RequestOptions()
.bitmapTransform(new RoundedCorners(AutoSizeUtils.dp2px(mContext, 12)));
Glide.with(mContext).asBitmap()
.apply(options).load(baseImgUrl+data.getFilePath()).into(dataBind.ivIdbSelect);
}
}
package com.xx.hbhbcompany.ui.appeal;
import android.os.Bundle;
import androidx.lifecycle.Observer;
import com.xx.hbhbcompany.BR;
import com.xx.hbhbcompany.R;
import com.xx.hbhbcompany.data.http.requst.AppealRequest;
import com.xx.hbhbcompany.data.http.respons.AppealFilesBean;
import com.xx.hbhbcompany.databinding.ActivityAppealDetailBinding;
import com.xx.hbhbcompany.fragment.adapter.AppealDetailListAdapter;
import java.util.List;
import me.goldze.mvvmhabit.base.BaseActivity;
public class AppealDetailActivity extends BaseActivity<ActivityAppealDetailBinding, AppealDetailViewModel> {
@Override
public int initContentView(Bundle savedInstanceState) {
return R.layout.activity_appeal_detail;
}
@Override
public int initVariableId() {
return BR.appealDetailViewModel;
}
// 重写初始方法调用参数
@Override
public void initData() {
super.initData();
/*调取诉求详情*/
viewModel.getAppealDetailById();
//展示上传图片列表
AppealDetailListAdapter adapter = new AppealDetailListAdapter(this);
binding.rvDblList.setAdapter(adapter);
viewModel.AppealDetailList.observe(this, new Observer<List<AppealFilesBean>>() {
@Override
public void onChanged(List<AppealFilesBean> appealFilesBeans) {
adapter.mList = appealFilesBeans;
adapter.notifyDataSetChanged();
}
});
}
@Override
public AppealDetailViewModel initViewModel() {
AppealRequest lm = new AppealRequest();
return new AppealDetailViewModel(getApplication(), lm);
}
}
package com.xx.hbhbcompany.ui.appeal;
import android.app.Application;
import androidx.annotation.NonNull;
import androidx.databinding.ObservableField;
import androidx.lifecycle.MutableLiveData;
import com.xx.hbhbcompany.data.http.requst.AppealRequest;
import com.xx.hbhbcompany.data.http.respons.AppealBean;
import com.xx.hbhbcompany.data.http.respons.AppealFilesBean;
import com.xx.hbhbcompany.data.local.LocalData;
import com.xx.xxviewlibrary.utils.AddImgAdapter;
import java.util.List;
import io.reactivex.rxjava3.disposables.Disposable;
import io.reactivex.rxjava3.functions.Consumer;
import me.goldze.mvvmhabit.base.BaseViewModel;
import me.goldze.mvvmhabit.http.ApiDisposableObserver;
import me.goldze.mvvmhabit.utils.RxUtils;
public class AppealDetailViewModel extends BaseViewModel<AppealRequest> {
// 创建诉求详情实体对象
public MutableLiveData<List<AppealFilesBean>> AppealDetailList = new MutableLiveData<>();
/*反馈人*/
public ObservableField<String> appealPerson = new ObservableField<>("");
/*诉求商户*/
public ObservableField<String> appealCustom = new ObservableField<>("");
/*联系方式*/
public ObservableField<String> appealPhone = new ObservableField<>("");
/*文字描述*/
public ObservableField<String> appealDescribe = new ObservableField<>("");
/*上传图片*/
public AddImgAdapter appealPicsAdapter;
public AppealDetailViewModel(@NonNull Application application) {
super(application);
}
public AppealDetailViewModel(@NonNull Application application, AppealRequest model) {
super(application, model);
}
private void setValueToNickName() {
/*给登录人所在商户赋值*/
appealCustom.set(LocalData.getMerchant().getStoreName());
/*给登录人赋值*/
appealPerson.set(LocalData.getUser().getNickName());
}
public void refreshNickName() {
setValueToNickName();
}
/*获取诉求详情*/
public void getAppealDetailById() {
model.getAppealDetailById()
.compose(RxUtils.schedulersTransformer()) //线程调度
.doOnSubscribe(AppealDetailViewModel.this)
.doOnSubscribe(new Consumer<Disposable>() {
@Override
public void accept(Disposable disposable) throws Exception {
}
}).subscribe(new ApiDisposableObserver<AppealBean>() {
@Override
public void onSuccess(AppealBean resultBean) {
/*存值*/
AppealDetailList.postValue( resultBean.getAppealFiles());
/*反馈人*/
appealPerson.set(String.valueOf(resultBean.getFeedbackPerson()));
/*联系方式*/
appealPhone.set(String.valueOf(resultBean.getContactMode()));
/*描述*/
appealDescribe.set(String.valueOf(resultBean.getLiteralDescription()));
/*所属商户*/
appealCustom.set(String.valueOf(resultBean.getMerchant().getCompanyName()));
}
@Override
public void onError(String Error) {
dismissDialog();
}
});
}
}
......@@ -13,6 +13,7 @@ import com.xx.hbhbcompany.data.http.respons.ConsultationTitleBean;
import com.xx.hbhbcompany.data.http.respons.JobInformationBean;
import com.xx.hbhbcompany.data.http.respons.JobTitleBean;
import com.xx.hbhbcompany.ui.activities.ActivitiesActivity;
import com.xx.hbhbcompany.ui.appeal.AppealDetailActivity;
import com.xx.hbhbcompany.ui.consult.ConsultationActivity;
import com.xx.hbhbcompany.ui.msg.MessageActivity;
import com.xx.hbhbcompany.ui.recruitment.RecruitmentActivity;
......@@ -172,6 +173,22 @@ public class HomeViewModel extends BaseViewModel<HomeRequest> {
startActivity(MessageActivity.class);
}
});
//跳转诉求详情界面
public BindingCommand goDetail = new BindingCommand(new BindingAction() {
@Override
public void call() {
startActivity(AppealDetailActivity.class);
}
});
//跳转诉求分配界面
public BindingCommand goEdit = new BindingCommand(new BindingAction() {
@Override
public void call() {
startActivity(MessageActivity.class);
}
});
//跳转资讯列表界面
public BindingCommand goConsultation = new BindingCommand(new BindingAction() {
......
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:binding="http://schemas.android.com/apk/res-auto">
<data>
<variable
name="appealDetailViewModel"
type="com.xx.hbhbcompany.ui.appeal.AppealDetailViewModel" />
<import type="me.goldze.mvvmhabit.binding.viewadapter.recyclerview.LayoutManagers" />
<import type="me.goldze.mvvmhabit.binding.viewadapter.recyclerview.LineManagers" />
</data>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<com.xx.xxviewlibrary.witget.XxBar
android:id="@+id/bar"
bar_title="@{@string/detail_appeal}"
android:layout_width="match_parent"
android:layout_height="55dp"
app:layout_constraintTop_toTopOf="parent"
tools:layout_editor_absoluteX="0dp" />
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="0dp"
android:background="@color/bg_grey"
app:layout_constraintTop_toBottomOf="@+id/bar">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="17dp"
android:orientation="vertical">
<!--反馈人(初始回显,可修改)-->
<com.xx.xxviewlibrary.witget.XxFormEdit
ed_content="@={appealDetailViewModel.appealPerson}"
ed_title='@{@string/feedback_person}'
android:background="@drawable/bg_white_radius_12"
android:layout_marginBottom="13dp"
app:content_type="1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
isBottom="true"/>
<!--所属(初始只回显,调接口时候直接传商户id,不可编辑)-->
<com.xx.xxviewlibrary.witget.XxFormEdit
ed_content="@={appealDetailViewModel.appealCustom}"
ed_title='@{@string/appeal_mine_merchant}'
android:background="@drawable/bg_white_radius_12"
android:layout_marginBottom="13dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:content_type="1"
isBottom="true"/>
<!--联系方式-->
<com.xx.xxviewlibrary.witget.XxFormEdit
ed_content="@={appealDetailViewModel.appealPhone}"
ed_title='@{@string/contact_information}'
android:layout_width="match_parent"
android:background="@drawable/bg_white_radius_12"
android:layout_marginBottom="13dp"
android:layout_height="wrap_content"
isBottom="true"
app:content_type="1"
app:hint_text="请输入联系方式" />
<!--诉求描述-->
<com.xx.xxviewlibrary.witget.XxFormEdit
ed_content="@={appealDetailViewModel.appealDescribe}"
ed_title='@{@string/claim_description}'
android:background="@drawable/bg_white_radius_12"
android:layout_marginBottom="13dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
isBottom="true"
app:content_type="1" />
<!--上传图片-->
<androidx.constraintlayout.widget.ConstraintLayout
isBottom="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="13dp"
android:background="@drawable/bg_white_radius_12"
android:paddingLeft="13dp"
android:paddingTop="28dp"
android:paddingRight="13dp">
<TextView
android:id="@+id/tv_aap_title_detail_img"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="上传图片"
android:textColor="@color/black"
android:textSize="16sp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_dbl_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="19dp"
android:layout_marginBottom="28dp"
android:orientation="horizontal"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_aap_title_detail_img"
binding:layoutManager="@{LayoutManagers.linear(0,false)}" />
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>
\ No newline at end of file
......@@ -52,6 +52,16 @@
android:layout_height="40dp"
binding:onClickCommand="@{homeViewModel.goMessage}"
android:text="@string/message_center"/>
<Button
android:layout_width="match_parent"
android:layout_height="40dp"
binding:onClickCommand="@{homeViewModel.goDetail}"
android:text="诉求详情"/>
<Button
android:layout_width="match_parent"
android:layout_height="40dp"
binding:onClickCommand="@{homeViewModel.goEdit}"
android:text="诉求编辑"/>
<!--资讯信息模块-->
<LinearLayout
android:layout_width="fill_parent"
......
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<!--环渤海模块-活动中心子布局-->
<data>
<variable
name="appealFilesBean"
type="com.xx.hbhbcompany.data.http.respons.AppealFilesBean" />
</data>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:id="@+id/iv_idb_select"
android:layout_width="54dp"
android:layout_height="54dp"
android:scaleType="fitXY"
/>
</LinearLayout>
</layout>
......@@ -19,10 +19,14 @@
<string name="talent">人才招聘</string>
<!--首页模块 薪资单位-->
<string name="unit">元/月</string>
<!--诉求反馈 诉求详情-->
<string name="detail_appeal">诉求详情</string>
<!--首页模块 学历:-->
<string name="education">学历:</string>
<!--首页模块 经验:-->
<string name="experience">经验:</string>
<!--诉求反馈 所属商户-->
<string name="appeal_mine_merchant">所属商户</string>
<!--首页模块 活动中心标题-->
<string name="activity_center">活动中心</string>
<!--首页模块 资讯信息bar-->
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment