Commit 89b80cfa by 霍志良

feat:咨询页面改版

parent 4f8ada71
......@@ -20,8 +20,8 @@ import java.util.List;
*/
public final class DemoGlobalConfig implements IConfigModule {
String APP_DOMAIN = "https://api.github.com/";
// public static String appEnv = YDLConstants.ENV_TEST;
public static String appEnv = YDLConstants.ENV_PROD;
public static String appEnv = YDLConstants.ENV_TEST;
// public static String appEnv = YDLConstants.ENV_PROD;
// public static String appEnv = YDLConstants.ENV_NEW_TEST;//配置未上传到maven库
@Override
......
......@@ -14,7 +14,7 @@ buildscript {
ydlrouter_version = '1.2.3'
constrait_support_version = '1.0.2'
componentVersion = "0.3.0.40"
componentVersion = "0.3.0.40-zl"
}
repositories {
mavenCentral()
......
......@@ -98,6 +98,11 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres
override fun showPromptPayment(promptPaymentBean: PromptPaymentBean) {
}
override fun consultTopBannerBean(consultantTopData: MutableList<ConsultantTopBannerBean>) {
}
override fun showImage(
url: String?,
imgView: ImageView,
......
......@@ -47,6 +47,7 @@ import com.ydl.ydlcommon.view.listener.EndlessRecyclerViewScrollListener
import com.yidianling.common.tools.LogUtil
import com.yidianling.common.tools.RxImageTool
import com.yidianling.common.tools.ToastUtil
import com.yidianling.consultant.adapter.ConsultantTopAdapter
import com.yidianling.consultant.adapter.ExpertSearchAdapter
import com.yidianling.consultant.bean.ConsultantRecentCity
import com.yidianling.consultant.constants.ConsultBIConstants
......@@ -98,7 +99,7 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
private var locationList: ArrayList<SubItem>? = arrayListOf()
private var locationHistoryList: ArrayList<RegionItem>? = arrayListOf()
private var eightcategoryPopup: EightCategoryPopupWindow? = null
private var mConsultantTopAdapter: ConsultantTopAdapter? = null
override fun layoutResId(): Int {
return R.layout.consultant_activity_expert_search_list
}
......@@ -113,17 +114,9 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
title_layout.setPadding(DisplayUtils.dp2px(context, 15), 0, 0, 0)
initViews()
initData()
val ffrom = PlatformDataManager.getRam().getChannelName()
if (!TextUtils.isEmpty(ffrom) &&
(ffrom.endsWith(ChannelConfig.Xinliceshiyiyu.name))
) {
//抑郁焦虑测试
rl_hot_fix_for_huawei.visibility = View.GONE
} else {
rl_hot_fix_for_huawei.visibility = View.VISIBLE
}
//资源页顶部资源位改版。
rl_hot_fix_for_huawei.visibility = View.GONE
consultant_list.visibility = View.VISIBLE
}
override fun initDataAndEventLazy() {
......@@ -155,6 +148,14 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
}
}
override fun consultTopBannerBean(consultantTopData: MutableList<ConsultantTopBannerBean>) {
//咨询页顶部滑动banner。
consultant_list.visibility = View.VISIBLE
consultant_list.layoutManager = LinearLayoutManager(requireContext())
mConsultantTopAdapter = ConsultantTopAdapter(requireContext(), consultantTopData)
consultant_list.adapter = mConsultantTopAdapter
}
override fun showImage(
url: String?,
imgView: ImageView,
......@@ -386,6 +387,7 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
getPresenter().fetchListHead()
getPresenter().fetchFunctionWord(2)
getPresenter().fetchConsultTopBanner()
recommendListView.requestData("")
v_loading.visibility = View.VISIBLE
......@@ -1600,6 +1602,7 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
onScrollListener.resetState()
getPresenter().mExtras = null
getPresenter().fetchListData(allFilter, getPresenter().mExtras, null)
getPresenter().fetchConsultTopBanner()
rvExperts.scrollToPosition(0)
}
......
......@@ -64,6 +64,21 @@ class ExpertSearchPresenter : SimplePresenter<IExpertSearchView>() {
}
@SuppressLint("CheckResult")
fun fetchConsultTopBanner() {
SearchApi.getSearchApi()
.searchConsultTopicBanner()
.compose(RxLifecycleUtils.bindToLifecycle(mView))
.compose(RxUtils.resultJavaData())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe({ resp ->
mView.consultTopBannerBean(resp)
}, { t ->
HttpErrorUtils.handleError(BaseApp.getApp(), t)
})
}
@SuppressLint("CheckResult")
fun fetchListData(allFilter: AllFilter, extras: Extras?, mapFilter: Map<String, Any>?) {
//是否亲子教育字段
// ConsultAssistantDialogUtils.REALATION_EDUCATION = allFilter.categories.size == 1 && allFilter.categories[0].cateId == "23"
......
......@@ -28,13 +28,15 @@ interface IExpertSearchView : IView {
/**
* 加载图片
*/
fun showImage(url : String?, imgView : ImageView)
fun showImage(url: String?, imgView: ImageView)
/**
* 加载图片
*/
fun showImage(url : String?, imgView : ImageView, ops : SimpleImageOpConfiger)
fun showImage(url: String?, imgView: ImageView, ops: SimpleImageOpConfiger)
fun showPromptPayment(promptPaymentBean: PromptPaymentBean)
fun consultTopBannerBean(consultantTopData: MutableList<ConsultantTopBannerBean>)
}
\ No newline at end of file
package com.yidianling.consultant.adapter
import android.content.Context
import androidx.recyclerview.widget.RecyclerView
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.ydl.webview.H5Params
import com.ydl.webview.NewH5Activity
import com.ydl.ydl_image.module.GlideApp
import com.yidianling.common.tools.RxImageTool
import com.yidianling.consultant.R
import com.yidianling.consultant.model.bean.ConsultantTopBannerBean
import kotlinx.android.synthetic.main.consultant_top_banner_item.view.*
/**
* Created by zqk on 17-9-20.
*/
class ConsultantTopAdapter(
private val context: Context,
private val consultList: MutableList<ConsultantTopBannerBean>,
) : RecyclerView.Adapter<ConsultantTopAdapter.ViewHolder>() {
override fun getItemCount(): Int = consultList.size
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val itemView =
LayoutInflater.from(context).inflate(R.layout.consultant_top_banner_item, parent, false)
return ViewHolder(itemView)
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
if (consultList[position].specialTopicSubhead?.isNotEmpty() == true) {
holder.consult_tag.visibility = View.VISIBLE
holder.consult_tag.text = consultList[position].specialTopicSubhead
} else {
holder.consult_tag.visibility = View.GONE
}
GlideApp.with(context)
.load(consultList[position].topicImage)
.into(holder.consult_img)
holder.consult_title.text = consultList[position].specialTopicTitle
holder.itemView.setOnClickListener {
NewH5Activity.start(
context,
H5Params(consultList[position].specialTopicUrl.toString(), "")
)
}
}
inner class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
val consult_tag = itemView.consult_tag
val consult_img = itemView.consult_img
val consult_title = itemView.consult_title
}
}
\ No newline at end of file
......@@ -50,6 +50,11 @@ interface SearchApi {
@Headers(YDL_DOMAIN + YDL_DOMAIN_JAVA)
fun searchFunctionWord(@Body map: Map<String, @JvmSuppressWildcards Any>): Observable<BaseAPIResponse<MutableList<FunctionWordBean>>>
//咨询页顶部滑动banner
@POST("doctor/v1/querySpecialTopic")
@Headers(YDL_DOMAIN + YDL_DOMAIN_JAVA)
fun searchConsultTopicBanner(): Observable<BaseAPIResponse<MutableList<ConsultantTopBannerBean>>>
//查询功能词、底纹词
//(1热门词,2底纹词,3跳转词)
@POST("function/word/queryList")
......
package com.yidianling.consultant.model.bean
data class ConsultantTopBannerBean(
val specialTopicSubhead: String? = "",//右上角标签 有数据则展示
val specialTopicUrl: String? = "",
val topicImage: String? = "",
val specialTopicTitle: String? = ""
)
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:ignore="MissingDefaultResource">
<corners
android:bottomRightRadius="@dimen/platform_dp_3"
android:topLeftRadius="@dimen/platform_dp_3"
android:topRightRadius="@dimen/platform_dp_3" />
<solid android:color="#ff7171" />
</shape>
\ No newline at end of file
......@@ -55,6 +55,13 @@
android:layout_height="wrap_content" />
</RelativeLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/consultant_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:orientation="horizontal"
android:visibility="visible"></androidx.recyclerview.widget.RecyclerView>
</com.google.android.material.appbar.CollapsingToolbarLayout>
</com.google.android.material.appbar.AppBarLayout>
......
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/platform_dp_25"
android:background="@color/white">
<ImageView
android:id="@+id/consult_img"
android:layout_width="44dp"
android:layout_height="44dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"></ImageView>
<TextView
android:id="@+id/consult_tag"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/platform_dp_12"
android:layout_marginBottom="@dimen/platform_dp_40"
android:background="@drawable/consultant_bg_top_tag"
android:includeFontPadding="false"
android:paddingStart="@dimen/platform_dp_4"
android:paddingTop="@dimen/platform_dp_2"
android:paddingEnd="@dimen/platform_dp_4"
android:paddingBottom="@dimen/platform_dp_2"
android:textColor="@color/white"
android:textSize="9sp"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@id/consult_img"
app:layout_constraintStart_toStartOf="@id/consult_img"
tools:text="99元专区"></TextView>
<TextView
android:id="@+id/consult_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/platform_dp_8"
android:includeFontPadding="false"
android:textColor="@color/platform_color_666666"
android:textSize="@dimen/platform_sp_12"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/consult_img"
tools:text="新人专区">
</TextView>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
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