1.新增首页模块
@@ -89,7 +89,6 @@ android {
|
||||
main {
|
||||
jniLibs.srcDirs = ['libs']
|
||||
res.srcDirs = [
|
||||
'src/main/res-login',
|
||||
'src/main/res-health-check',
|
||||
'src/main/res-health-record',
|
||||
// 'src/main/res-intervention',
|
||||
|
||||
@@ -184,8 +184,21 @@
|
||||
<activity
|
||||
android:name="com.sw.healthyclients.ui.guidance.ViewLocationActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity android:name=".ui.activity.SimulateUserActivity"
|
||||
<activity
|
||||
android:name=".ui.activity.SimulateUserActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".ui.activity.home.HomeNoticeListActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".ui.activity.home.HomeNoticeDetailActivity"
|
||||
android:screenOrientation="portrait"/>
|
||||
<activity android:name=".ui.activity.home.HomeBannerDetailActivity"
|
||||
android:screenOrientation="portrait"/>
|
||||
<activity android:name=".ui.activity.home.MyBankLActivity"
|
||||
android:screenOrientation="portrait"/>
|
||||
<activity android:name=".ui.activity.EmptyActivity"
|
||||
android:screenOrientation="portrait"/>
|
||||
|
||||
</application>
|
||||
|
||||
|
||||
@@ -9,6 +9,12 @@
|
||||
"tabs": [
|
||||
{
|
||||
"tabName": "首页",
|
||||
"tabTag": "key_home_fragment",
|
||||
"iconNormal": "main_home_tab_home_normal",
|
||||
"iconSelected": "main_home_tab_home_selected"
|
||||
},
|
||||
{
|
||||
"tabName": "咨询",
|
||||
"tabTag": "key_guidance_fragment",
|
||||
"iconNormal": "main_home_tab_index_normal",
|
||||
"iconSelected": "main_home_tab_index_selected"
|
||||
|
||||
@@ -26,9 +26,11 @@ import com.xjjk.healthyclients.base.BaseVMBActivity
|
||||
import com.xjjk.healthyclients.bean.CardInfoBean
|
||||
import com.xjjk.healthyclients.bottomtab.HomeBottomTabLayout
|
||||
import com.xjjk.healthyclients.databinding.ActivityMainBinding
|
||||
import com.xjjk.healthyclients.event.HomeTabChangeEvent
|
||||
import com.xjjk.healthyclients.event.RefreshEvent
|
||||
import com.xjjk.healthyclients.fragment.EmergencyFragment
|
||||
import com.xjjk.healthyclients.fragment.GuidanceFragment
|
||||
import com.xjjk.healthyclients.fragment.HomeFragment
|
||||
import com.xjjk.healthyclients.fragment.MonitorFragment
|
||||
import com.xjjk.healthyclients.superfuntion.loginIm
|
||||
import com.xjjk.healthyclients.superfuntion.startAllDoctorActivity
|
||||
@@ -48,6 +50,7 @@ class MainActivity : BaseVMBActivity<MainViewModel, ActivityMainBinding>(R.layou
|
||||
HomeBottomTabLayout.HomeBottomTabLayoutCallback {
|
||||
|
||||
//每个tab对应的tag,和json配置文件中保持一致
|
||||
val TAG_HOME = "key_home_fragment"
|
||||
val TAG_GUIDANCE = "key_guidance_fragment"
|
||||
val TAG_EMERGENCY = "key_emergency_fragment"
|
||||
val TAG_MONITOR = "key_monitor_fragment"
|
||||
@@ -275,9 +278,9 @@ class MainActivity : BaseVMBActivity<MainViewModel, ActivityMainBinding>(R.layou
|
||||
|
||||
override fun getFragmentByTag(tabTag: String): Fragment? {
|
||||
when (tabTag) {
|
||||
// TAG_GUIDANCE -> {
|
||||
// return HomeFragment()
|
||||
// }
|
||||
TAG_HOME -> {
|
||||
return HomeFragment()
|
||||
}
|
||||
|
||||
TAG_GUIDANCE -> {
|
||||
return GuidanceFragment()
|
||||
@@ -310,6 +313,11 @@ class MainActivity : BaseVMBActivity<MainViewModel, ActivityMainBinding>(R.layou
|
||||
return null
|
||||
}
|
||||
|
||||
fun changeTab(index: Int) {
|
||||
mBinding.mainTabLayout.changeTab(index)
|
||||
}
|
||||
|
||||
|
||||
override fun transparentStatusBar(): Boolean {
|
||||
return true
|
||||
}
|
||||
@@ -403,6 +411,10 @@ class MainActivity : BaseVMBActivity<MainViewModel, ActivityMainBinding>(R.layou
|
||||
mViewModel.selectTfHelper(event.doctor)
|
||||
println("头像id"+doctorId)
|
||||
}
|
||||
}else if (event is HomeTabChangeEvent) {
|
||||
if (event.index >= 0){
|
||||
changeTab(event.index)
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.xjjk.healthyclients.adapter.home
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.chad.library.adapter.base.module.LoadMoreModule
|
||||
import com.chad.library.adapter.base.viewholder.BaseViewHolder
|
||||
import com.sw.healthyclients.utils.DateUtil
|
||||
import com.xjjk.healthyclients.R
|
||||
import com.xjjk.healthyclients.bean.home.HomeNoticeBean
|
||||
|
||||
class HomeMessageAdapter :
|
||||
BaseQuickAdapter<HomeNoticeBean, BaseViewHolder>(R.layout.item_home_message), LoadMoreModule {
|
||||
|
||||
override fun convert(holder: BaseViewHolder, item: HomeNoticeBean) {
|
||||
holder.setText(R.id.tv_title, item.title)
|
||||
.setText(R.id.tv_date, DateUtil.dateStrToStrMiddle(item.createTime))
|
||||
}
|
||||
|
||||
}
|
||||
@@ -350,12 +350,6 @@ abstract class BaseVMBFragment<VM : BaseViewModel, B : ViewDataBinding>(private
|
||||
activity?.startActivity(intent)
|
||||
}
|
||||
|
||||
/**
|
||||
* 历史遗留方法,懒得改以前的了,新页面无视即可
|
||||
*/
|
||||
open fun getStatusbarStyle(): Int {
|
||||
return 0
|
||||
} // 0 主题色+白字 1白底黑字
|
||||
|
||||
private fun createDialog() {
|
||||
dialog = LoadingDialog(
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
package com.xjjk.healthyclients.bean.home
|
||||
|
||||
|
||||
data class HomeNoticeBean(
|
||||
val content: String,
|
||||
val createBy: String,
|
||||
val createTime: String,
|
||||
val delFlag: String,
|
||||
val departScopeList: List<DepartScope>,
|
||||
val endTime: String,
|
||||
val id: String,
|
||||
val noticeStatus: Int,
|
||||
val orgCode: String,
|
||||
val scopeType: Int,
|
||||
val startTime: String,
|
||||
val title: String,
|
||||
val updateBy: String,
|
||||
val updateTime: String,
|
||||
val userScopeList: List<DepartScope>,
|
||||
)
|
||||
|
||||
data class DepartScope(
|
||||
val id: String,
|
||||
val noticeId: String,
|
||||
val record: String,
|
||||
val scopeId: String,
|
||||
val type: Int
|
||||
)
|
||||
|
||||
data class HomeBannerBean(
|
||||
val createBy: String,
|
||||
val createTime: String,
|
||||
val delFlag: String,
|
||||
val endTime: String,
|
||||
val id: String,
|
||||
val isLongTermEffective: String,
|
||||
val jumpUrl: String,
|
||||
val memo: String,
|
||||
val name: String,
|
||||
val pageNo: Int,
|
||||
val pageSize: Int,
|
||||
val photoUrl: String?,
|
||||
val showLocation: String,
|
||||
val sort: Int,
|
||||
val startTime: String,
|
||||
val status: String,
|
||||
val tfJump: String,
|
||||
val updateBy: String,
|
||||
val updateTime: String
|
||||
)
|
||||
|
||||
@@ -0,0 +1,70 @@
|
||||
package com.xjjk.healthyclients.bean.user
|
||||
|
||||
/**
|
||||
* 我的积分
|
||||
*/
|
||||
data class UserPointBean(
|
||||
|
||||
val addPointsSum: Int,
|
||||
val exchangePointsSum: Int,
|
||||
val points: Int
|
||||
)
|
||||
|
||||
|
||||
data class PointDetailBean<T>(
|
||||
val current: Int,
|
||||
val pages: Int,
|
||||
val records: MutableList<T>?,
|
||||
val size: Int,
|
||||
val total: Int
|
||||
)
|
||||
|
||||
/**
|
||||
* 积分明细
|
||||
*/
|
||||
data class PointRecord(
|
||||
val businessInfo: String,
|
||||
val createMonthStr: String,
|
||||
val createTime: String,
|
||||
val id: Int,
|
||||
val points: Int,
|
||||
val remark: String
|
||||
)
|
||||
|
||||
/**
|
||||
* 积分榜
|
||||
*/
|
||||
data class PointRank(
|
||||
val avatar: String,
|
||||
val deptName: String,
|
||||
val orgName: String,
|
||||
val pointSum: Int,
|
||||
val ranking: Int,
|
||||
val realName: String,
|
||||
val sex: Int,
|
||||
val userId: String
|
||||
)
|
||||
|
||||
/**
|
||||
* 积分打卡-入参
|
||||
*/
|
||||
data class CheckInBean(
|
||||
val businessId: Int,
|
||||
val points: Int,
|
||||
val remark: String,
|
||||
val sourceType: String,
|
||||
val userId: String
|
||||
)
|
||||
|
||||
/**
|
||||
* 积分任务
|
||||
*/
|
||||
data class PointsTask(
|
||||
val clockInStatus: Int,
|
||||
val frequency: Int,
|
||||
val icon: String,
|
||||
val points: Int,
|
||||
val ruleCategory: Int,
|
||||
val ruleDesc: String,
|
||||
val ruleId: Int
|
||||
)
|
||||
@@ -0,0 +1,67 @@
|
||||
package com.xjjk.healthyclients.data.api
|
||||
|
||||
import com.xjjk.healthyclients.bean.home.HomeBannerBean
|
||||
import com.xjjk.healthyclients.bean.home.HomeNoticeBean
|
||||
import com.xjjk.healthyclients.bean.user.CheckInBean
|
||||
import com.xjjk.healthyclients.bean.user.PointDetailBean
|
||||
import com.xjjk.healthyclients.bean.user.PointRank
|
||||
import com.xjjk.healthyclients.bean.user.PointRecord
|
||||
import com.xjjk.healthyclients.bean.user.PointsTask
|
||||
import com.xjjk.healthyclients.bean.user.UserPointBean
|
||||
import com.xjjk.healthyclients.data.bean.ApiResponse
|
||||
import okhttp3.RequestBody
|
||||
import retrofit2.http.Body
|
||||
import retrofit2.http.GET
|
||||
import retrofit2.http.POST
|
||||
import retrofit2.http.QueryMap
|
||||
|
||||
interface HomeApi {
|
||||
|
||||
/**
|
||||
* 获取首页消息通知列表
|
||||
*/
|
||||
@GET("/health-system/app/sys/message/notice/list")
|
||||
suspend fun getHomeNoticeList(@QueryMap params: MutableMap<String, Any?>): ApiResponse<MutableList<HomeNoticeBean>>
|
||||
|
||||
/**
|
||||
* 消息通知-通过id查询
|
||||
*/
|
||||
@GET("/health-system/app/sys/message/notice/queryById")
|
||||
suspend fun getHomeNoticeDetail(@QueryMap params: MutableMap<String, Any?>): ApiResponse<HomeNoticeBean>
|
||||
|
||||
/**
|
||||
* 首页banner
|
||||
*/
|
||||
@GET("/sys/api/banner/selectBannerList")
|
||||
suspend fun getHomeBannerList(@QueryMap params: MutableMap<String, Any?>): ApiResponse<MutableList<HomeBannerBean>>
|
||||
|
||||
/**
|
||||
* 用户积分信息-我的积分
|
||||
*/
|
||||
@GET("/health-system/bank/userPoints/app/myPoints")
|
||||
suspend fun getUserPoints(@QueryMap params: MutableMap<String, Any?>): ApiResponse<MutableList<UserPointBean>>
|
||||
|
||||
/**
|
||||
* 用户积分信息-积分任务
|
||||
*/
|
||||
@GET("/health-system/bank/userPoints/app/pointsTaskList")
|
||||
suspend fun getUserPointsTask(@QueryMap params: MutableMap<String, Any?>): ApiResponse<PointsTask>
|
||||
|
||||
/**
|
||||
* 用户积分信息-积分明细
|
||||
*/
|
||||
@POST("/health-system/bank/userPoints/app/pointRecord")
|
||||
suspend fun postUserPointsRecord(@Body requestBody: RequestBody): ApiResponse<PointDetailBean<PointRecord>>
|
||||
|
||||
/**
|
||||
* 用户积分信息-积分榜
|
||||
*/
|
||||
@POST("/health-system/bank/userPoints/app/pointRanking")
|
||||
suspend fun postUserPointsRank(@Body requestBody: RequestBody): ApiResponse<PointDetailBean<PointRank>>
|
||||
/**
|
||||
* 用户积分信息-积分打卡
|
||||
*/
|
||||
@POST("/health-system/bank/userPoints/app/pointCheckIn")
|
||||
suspend fun postUserPointsCheckIn(@Body requestBody: RequestBody): ApiResponse<CheckInBean>
|
||||
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
package com.xjjk.healthyclients.data.repository
|
||||
|
||||
import com.xjjk.healthyclients.base.repository.BaseRepository
|
||||
import com.xjjk.healthyclients.bean.home.HomeBannerBean
|
||||
import com.xjjk.healthyclients.bean.home.HomeNoticeBean
|
||||
import com.xjjk.healthyclients.bean.user.CheckInBean
|
||||
import com.xjjk.healthyclients.bean.user.PointDetailBean
|
||||
import com.xjjk.healthyclients.bean.user.PointRank
|
||||
import com.xjjk.healthyclients.bean.user.PointRecord
|
||||
import com.xjjk.healthyclients.bean.user.PointsTask
|
||||
import com.xjjk.healthyclients.bean.user.UserPointBean
|
||||
import com.xjjk.healthyclients.data.api.HomeApi
|
||||
import com.xjjk.healthyclients.data.bean.ApiResponse
|
||||
import com.xjjk.healthyclients.retrofit.RetrofitManager
|
||||
import com.xjjk.healthyclients.retrofit.RetrofitManager.toRequestBody
|
||||
import com.xjjk.healthyclients.superfuntion.toJson
|
||||
|
||||
object HomeRepository : BaseRepository() {
|
||||
|
||||
private val service by lazy { RetrofitManager.getService(HomeApi::class.java) }
|
||||
|
||||
|
||||
suspend fun getHomeNoticeList(
|
||||
pageNo: Int,
|
||||
pageSize: Int
|
||||
): ApiResponse<MutableList<HomeNoticeBean>> {
|
||||
val map = mutableMapOf<String, Any?>()
|
||||
map["pageNo"] = pageNo
|
||||
map["pageSize"] = pageSize
|
||||
|
||||
return apiCall { service.getHomeNoticeList(map) }
|
||||
}
|
||||
|
||||
suspend fun getHomeNoticeDetail(id: String): ApiResponse<HomeNoticeBean> {
|
||||
val map = mutableMapOf<String, Any?>()
|
||||
map["id"] = id
|
||||
return apiCall { service.getHomeNoticeDetail(map) }
|
||||
}
|
||||
|
||||
suspend fun getHomeBannerList(showLocation: String): ApiResponse<MutableList<HomeBannerBean>> {
|
||||
val map = mutableMapOf<String, Any?>()
|
||||
map["showLocation"] = showLocation
|
||||
return apiCall { service.getHomeBannerList(map) }
|
||||
}
|
||||
|
||||
suspend fun getUserPoints(): ApiResponse<MutableList<UserPointBean>> {
|
||||
val map = mutableMapOf<String, Any?>()
|
||||
return apiCall { service.getUserPoints(map) }
|
||||
}
|
||||
|
||||
suspend fun getUserPointsTask(): ApiResponse<PointsTask> {
|
||||
val map = mutableMapOf<String, Any?>()
|
||||
return apiCall { service.getUserPointsTask(map) }
|
||||
}
|
||||
|
||||
suspend fun postUserPointsRecord(changeType: Int): ApiResponse<PointDetailBean<PointRecord>> {
|
||||
val params = mutableMapOf<String, Any?>()
|
||||
params["changeType"] = changeType
|
||||
return apiCall { service.postUserPointsRecord(params.toJson().toRequestBody()) }
|
||||
}
|
||||
|
||||
// rankType(榜单类型,1周榜,2月榜,10总榜)
|
||||
suspend fun postUserPointsRank(
|
||||
pageNo: Int,
|
||||
pageSize: Int,
|
||||
rankType: Int
|
||||
): ApiResponse<PointDetailBean<PointRank>> {
|
||||
val params = mutableMapOf<String, Any?>()
|
||||
params["pageNo"] = pageNo
|
||||
params["pageSize"] = pageSize
|
||||
params["rankType"] = rankType
|
||||
return apiCall { service.postUserPointsRank(params.toJson().toRequestBody()) }
|
||||
}
|
||||
|
||||
suspend fun postUserPointsCheckIn(checkInBean: CheckInBean): ApiResponse<CheckInBean> {
|
||||
return apiCall { service.postUserPointsCheckIn(checkInBean.toJson().toRequestBody()) }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package com.xjjk.healthyclients.event
|
||||
|
||||
/**
|
||||
* 首页tab切换
|
||||
*/
|
||||
class HomeTabChangeEvent {
|
||||
var index: Int = -1
|
||||
|
||||
}
|
||||
@@ -289,10 +289,6 @@ class EmergencyFragment :
|
||||
}
|
||||
}
|
||||
|
||||
override fun getStatusbarStyle(): Int {
|
||||
return 1
|
||||
}
|
||||
|
||||
override fun onLocationChanged(amapLocation: AMapLocation?) {
|
||||
if (mListener != null && amapLocation != null) {
|
||||
if (amapLocation != null
|
||||
|
||||
@@ -23,7 +23,6 @@ import com.xjjk.healthyclients.superfuntion.startGroupChat
|
||||
import com.xjjk.healthyclients.superfuntion.startLoginActivity
|
||||
import com.xjjk.healthyclients.superfuntion.startMyGuidanceActivity
|
||||
import com.xjjk.healthyclients.ui.activity.guidance.adapter.GuidanceFragmentDoctorAdapter
|
||||
import com.xjjk.healthyclients.ui.activity.home.HomeBannerDetailActivity
|
||||
import com.xjjk.healthyclients.ui.viewmodel.GuidanceFragmentViewModel
|
||||
import com.xjjk.healthyclients.utils.ConstantUtils
|
||||
import com.xjjk.healthyclients.utils.IMInputActionSettingUtils
|
||||
@@ -197,9 +196,9 @@ class GuidanceFragment :
|
||||
}
|
||||
}
|
||||
}
|
||||
R.id.banner->{
|
||||
toActivity(HomeBannerDetailActivity::class.java)
|
||||
}
|
||||
// R.id.banner->{
|
||||
// toActivity(HomeBannerDetailActivity::class.java)
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -209,7 +208,7 @@ class GuidanceFragment :
|
||||
ivLeft?.setOnClickListener(this@GuidanceFragment)
|
||||
ivRight?.setOnClickListener(this@GuidanceFragment)
|
||||
tvDoctorMore?.setOnClickListener(this@GuidanceFragment)
|
||||
banner?.setOnClickListener(this@GuidanceFragment)
|
||||
// banner?.setOnClickListener(this@GuidanceFragment)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,257 @@
|
||||
package com.xjjk.healthyclients.fragment
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import androidx.lifecycle.Lifecycle
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.lifecycle.repeatOnLifecycle
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout
|
||||
import com.sw.healthyclients.data.local.DataStoreManager
|
||||
import com.tencent.qcloud.tuikit.tuichat.bean.WorkBean
|
||||
import com.xjjk.healthyclients.R
|
||||
import com.xjjk.healthyclients.adapter.common.MultiItemTypeAdapter
|
||||
import com.xjjk.healthyclients.base.BaseVMBFragment
|
||||
import com.xjjk.healthyclients.bean.guidance.GuidanceListBean
|
||||
import com.xjjk.healthyclients.databinding.FragmentHomeBinding
|
||||
import com.xjjk.healthyclients.event.HomeTabChangeEvent
|
||||
import com.xjjk.healthyclients.event.RefreshEvent
|
||||
import com.xjjk.healthyclients.superfuntion.initColors
|
||||
import com.xjjk.healthyclients.superfuntion.load
|
||||
import com.xjjk.healthyclients.superfuntion.startAppointmentWaitAffirmActivity
|
||||
import com.xjjk.healthyclients.superfuntion.startEmergencySeekDoctorActivity
|
||||
import com.xjjk.healthyclients.superfuntion.startGroupChat
|
||||
import com.xjjk.healthyclients.superfuntion.startLoginActivity
|
||||
import com.xjjk.healthyclients.superfuntion.startMyGuidanceActivity
|
||||
import com.xjjk.healthyclients.ui.activity.EmptyActivity
|
||||
import com.xjjk.healthyclients.ui.activity.guidance.adapter.GuidanceFragmentDoctorAdapter
|
||||
import com.xjjk.healthyclients.ui.activity.home.HomeBannerDetailActivity
|
||||
import com.xjjk.healthyclients.ui.activity.home.HomeNoticeListActivity
|
||||
import com.xjjk.healthyclients.ui.viewmodel.HomeViewModel
|
||||
import com.xjjk.healthyclients.utils.ConstantUtils
|
||||
import com.xjjk.healthyclients.utils.IMInputActionSettingUtils
|
||||
import com.xjjk.healthyclients.utils.TUIUtils
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.flow.collectLatest
|
||||
import kotlinx.coroutines.launch
|
||||
import org.greenrobot.eventbus.EventBus
|
||||
|
||||
/**
|
||||
* 首页fragment
|
||||
*/
|
||||
class HomeFragment :
|
||||
BaseVMBFragment<HomeViewModel, FragmentHomeBinding>(R.layout.fragment_home),
|
||||
SwipeRefreshLayout.OnRefreshListener {
|
||||
|
||||
var stringList: MutableList<String> = mutableListOf()
|
||||
var mDoctorList = arrayListOf<GuidanceListBean>()
|
||||
var mGuidanceFragmentDoctorAdapter: GuidanceFragmentDoctorAdapter? = null
|
||||
|
||||
|
||||
override fun initView(root: View?, savedInstanceState: Bundle?) {
|
||||
mBinding.swipeRefresh.initColors()
|
||||
mBinding.swipeRefresh.setOnRefreshListener(this@HomeFragment)
|
||||
|
||||
var manager = LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, false)
|
||||
mBinding.layoutItem3.fragmentGuidanceRvDoctor.layoutManager = manager
|
||||
mGuidanceFragmentDoctorAdapter =
|
||||
GuidanceFragmentDoctorAdapter(
|
||||
requireContext(),
|
||||
R.layout.item_fragment_doctor,
|
||||
mDoctorList
|
||||
) {}
|
||||
mGuidanceFragmentDoctorAdapter!!.setOnItemClickListener(object :
|
||||
MultiItemTypeAdapter.OnItemClickListener {
|
||||
override fun onItemClick(
|
||||
view: View?,
|
||||
holder: RecyclerView.ViewHolder?,
|
||||
position: Int,
|
||||
) {
|
||||
var bean = mDoctorList[position]
|
||||
if (bean.contentType == "1") {
|
||||
var isSelf = false
|
||||
//大于等于4 不可发消息
|
||||
var status = 0
|
||||
var sendMessage = false
|
||||
try {
|
||||
status = bean.contentStatus.toInt()
|
||||
} catch (e: Exception) {
|
||||
}
|
||||
sendMessage = status >= 4
|
||||
IMInputActionSettingUtils.createImageTextConsultSetting(
|
||||
isSelf,
|
||||
disableSendMessage = sendMessage,
|
||||
disableEvaluate = status == 5
|
||||
)
|
||||
requireContext().startGroupChat(
|
||||
bean.imId, "图文咨询", consultantId = bean.memberId,
|
||||
workBean = WorkBean(bean.id, TUIUtils.WORK_TYPE_IMAGE_TEXT_CONSULT)
|
||||
)
|
||||
} else {
|
||||
requireContext()?.let {
|
||||
startAppointmentWaitAffirmActivity(
|
||||
it,
|
||||
bean.id,
|
||||
true
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun onItemLongClick(
|
||||
view: View?,
|
||||
holder: RecyclerView.ViewHolder?,
|
||||
position: Int,
|
||||
): Boolean {
|
||||
return false
|
||||
}
|
||||
|
||||
})
|
||||
mBinding.layoutItem3.fragmentGuidanceRvDoctor.adapter = mGuidanceFragmentDoctorAdapter
|
||||
|
||||
}
|
||||
|
||||
override fun bindEvent() {
|
||||
mBinding.headImg.setOnClickListener {
|
||||
toActivity(HomeNoticeListActivity::class.java)
|
||||
}
|
||||
mBinding.apply {
|
||||
addClickViews(
|
||||
image1, image2, image3, image4, layoutItem4.imgLeft, layoutItem4.imgRight,
|
||||
layoutItem1.homeHeadTab1, layoutItem1.homeHeadTab2, layoutItem1.homeHeadTab3,
|
||||
layoutItem1.homeHeadTab4, homeMarqueeView, layoutItem3.tvDoctorMore
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onClick(v: View?) {
|
||||
when (v?.id) {
|
||||
R.id.img_left, R.id.img_right, R.id.home_head_tab1, R.id.home_head_tab2, R.id.home_head_tab4,
|
||||
R.id.image1, R.id.image4 -> {
|
||||
toActivity(EmptyActivity::class.java)
|
||||
}
|
||||
|
||||
R.id.image2 -> {
|
||||
toActivity(HomeBannerDetailActivity::class.java)
|
||||
|
||||
}
|
||||
|
||||
R.id.image3 -> {
|
||||
EventBus.getDefault().post(HomeTabChangeEvent().apply { index=1 })
|
||||
}
|
||||
|
||||
R.id.home_head_tab3 -> {
|
||||
startEmergencySeekDoctorActivity(requireContext())
|
||||
}
|
||||
|
||||
R.id.home_marqueeView -> {
|
||||
if (DataStoreManager.isLogin()) {
|
||||
toActivity(HomeNoticeListActivity::class.java)
|
||||
}
|
||||
}
|
||||
|
||||
R.id.tv_doctor_more -> {
|
||||
if (ConstantUtils.mCheckToken) {
|
||||
if (DataStoreManager.getToken().isNullOrEmpty()) {
|
||||
startLoginActivity(requireContext())
|
||||
} else {
|
||||
startMyGuidanceActivity(requireContext(), "")
|
||||
}
|
||||
} else {
|
||||
startLoginActivity(requireContext())
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
if (DataStoreManager.isLogin()) {
|
||||
mBinding.tvHi.visibility = View.VISIBLE
|
||||
mBinding.homeMarqueeView.visibility = View.VISIBLE
|
||||
mBinding.tvHi.text = "hi~ ${DataStoreManager.getUserInfo().realname}"
|
||||
} else {
|
||||
mBinding.homeMarqueeView.visibility = View.GONE
|
||||
mBinding.tvHi.visibility = View.GONE
|
||||
}
|
||||
}
|
||||
|
||||
override fun createObserve() {
|
||||
super.createObserve()
|
||||
lifecycleScope.launch {
|
||||
repeatOnLifecycle(Lifecycle.State.CREATED) {
|
||||
mViewModel.homeBannerList.collectLatest {
|
||||
if (it.isNullOrEmpty()) {
|
||||
return@collectLatest
|
||||
}
|
||||
mBinding.image1.load(it.get(0).photoUrl, false)
|
||||
mBinding.image2.load(it.get(1).photoUrl, false)
|
||||
mBinding.image3.load(it.get(2).photoUrl, false)
|
||||
mBinding.image4.load(it.get(3).photoUrl, false)
|
||||
}
|
||||
}
|
||||
}
|
||||
lifecycleScope.launch {
|
||||
repeatOnLifecycle(Lifecycle.State.CREATED) {
|
||||
mViewModel.homeNoticeRepeat.collectLatest {
|
||||
stringList.clear()
|
||||
if (it.isNullOrEmpty()) {
|
||||
stringList.add("暂无通知")
|
||||
} else {
|
||||
it.forEach { noticeData ->
|
||||
stringList.add(noticeData.title)
|
||||
}
|
||||
}
|
||||
mBinding.homeMarqueeView.stopFlipping()
|
||||
delay(100)
|
||||
mBinding.homeMarqueeView.startWithList(stringList)
|
||||
}
|
||||
}
|
||||
}
|
||||
lifecycleScope.launch {
|
||||
repeatOnLifecycle(Lifecycle.State.CREATED) {
|
||||
mViewModel.mDoctorList.collectLatest { list ->
|
||||
mBinding.apply {
|
||||
if (list.size == 0) {
|
||||
layoutItem3.fragmentGuidanceRvDoctor.visibility = View.GONE
|
||||
layoutItem3.llEmpty.visibility = View.VISIBLE
|
||||
} else {
|
||||
layoutItem3.fragmentGuidanceRvDoctor.visibility = View.VISIBLE
|
||||
layoutItem3.llEmpty.visibility = View.GONE
|
||||
mDoctorList.clear()
|
||||
mDoctorList.addAll(list)
|
||||
}
|
||||
mGuidanceFragmentDoctorAdapter?.notifyDataSetChanged()
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
override fun initData() {
|
||||
mViewModel.getHomeBannerList("2")
|
||||
}
|
||||
|
||||
override fun onRefresh() {
|
||||
mBinding.swipeRefresh.isRefreshing = false
|
||||
if (ConstantUtils.mCheckToken) {
|
||||
mViewModel.selectDoctorRecommendHome()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onMessageEvent(event: Any?) {
|
||||
if (event is RefreshEvent) {
|
||||
mViewModel.getHomeNoticeListRepeat()
|
||||
onRefresh()
|
||||
}
|
||||
super.onMessageEvent(event)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,6 +23,7 @@ import com.xjjk.healthyclients.superfuntion.startUserInfoSettingActivity
|
||||
import com.xjjk.healthyclients.superfuntion.startUserMyGuidanceActivity
|
||||
import com.xjjk.healthyclients.superfuntion.startUserSettingActivity
|
||||
import com.xjjk.healthyclients.superfuntion.startUserSoSContactsActivity
|
||||
import com.xjjk.healthyclients.ui.activity.home.HomeNoticeListActivity
|
||||
import com.xjjk.healthyclients.ui.viewmodel.UserInfoFragmentViewModel
|
||||
import com.xjjk.healthyclients.utils.ConstantUtils
|
||||
import kotlinx.coroutines.flow.collectLatest
|
||||
@@ -54,6 +55,7 @@ class UserInfoFragment :
|
||||
mList.clear()
|
||||
mList.add(UserMenuBean(1, "咨询人管理", R.drawable.ic_user_personnel_manager, View.VISIBLE))
|
||||
mList.add(UserMenuBean(3, "应急就医", R.drawable.ic_user_sos, View.VISIBLE))
|
||||
mList.add(UserMenuBean(4, "消息通知", R.drawable.icon_home_xiaolaba, View.VISIBLE))
|
||||
mList.add(UserMenuBean(8,"紧急联系人",R.drawable.ic_user_contacts,View.INVISIBLE))
|
||||
|
||||
|
||||
@@ -169,6 +171,9 @@ class UserInfoFragment :
|
||||
3 -> {
|
||||
context?.let { startEmergencySeekDoctorActivity(it) }
|
||||
}
|
||||
4 -> {
|
||||
toActivity(HomeNoticeListActivity::class.java)
|
||||
}
|
||||
8 -> {
|
||||
requireContext().startUserSoSContactsActivity()
|
||||
}
|
||||
@@ -189,10 +194,6 @@ class UserInfoFragment :
|
||||
|
||||
}
|
||||
|
||||
override fun getStatusbarStyle(): Int {
|
||||
return 1
|
||||
}
|
||||
|
||||
override fun onClick(v: View?) {
|
||||
when (v?.id) {
|
||||
R.id.user_tv_look_all -> {
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
package com.xjjk.healthyclients.superfuntion
|
||||
|
||||
import android.view.ViewGroup
|
||||
import android.widget.ImageView
|
||||
import androidx.fragment.app.Fragment
|
||||
import com.xjjk.healthyclients.bean.home.HomeBannerBean
|
||||
import com.youth.banner.Banner
|
||||
import com.youth.banner.adapter.BannerAdapter
|
||||
import com.youth.banner.adapter.BannerImageAdapter
|
||||
import com.youth.banner.config.IndicatorConfig
|
||||
import com.youth.banner.holder.BannerImageHolder
|
||||
import com.youth.banner.indicator.CircleIndicator
|
||||
|
||||
fun Fragment.showBanner(
|
||||
banner: Banner<Any, BannerAdapter<Any, *>>,
|
||||
bannerDataList: MutableList<HomeBannerBean>,
|
||||
listener: ((HomeBannerBean)-> Unit)? = null
|
||||
) {
|
||||
val bannerImageAdapter = object : BannerImageAdapter<HomeBannerBean>(bannerDataList) {
|
||||
override fun onBindView(
|
||||
holder: BannerImageHolder?,
|
||||
data: HomeBannerBean?,
|
||||
position: Int,
|
||||
size: Int
|
||||
) {
|
||||
context?.let {
|
||||
holder!!.imageView.load(data?.photoUrl)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCreateHolder(parent: ViewGroup?, viewType: Int): BannerImageHolder {
|
||||
val imageView = ImageView(parent?.context)
|
||||
//注意,必须设置为match_parent,这个是viewpager2强制要求的
|
||||
val params = ViewGroup.LayoutParams(
|
||||
ViewGroup.LayoutParams.MATCH_PARENT,
|
||||
ViewGroup.LayoutParams.MATCH_PARENT
|
||||
)
|
||||
imageView.layoutParams = params
|
||||
// imageView.scaleType = ImageView.ScaleType.CENTER_CROP
|
||||
return BannerImageHolder(imageView)
|
||||
}
|
||||
}
|
||||
banner.addBannerLifecycleObserver(this)
|
||||
.setAdapter(bannerImageAdapter, true)
|
||||
.setLoopTime(4000)
|
||||
.setBannerRound(6f)
|
||||
.isAutoLoop(true)
|
||||
.setIndicator(CircleIndicator(requireContext()))
|
||||
.setIndicatorGravity(IndicatorConfig.Direction.CENTER)
|
||||
.setIndicatorSelectedWidth(10)
|
||||
|
||||
banner.setOnBannerListener { data, position ->
|
||||
data as HomeBannerBean
|
||||
listener?.invoke(data)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
package com.xjjk.healthyclients.ui.activity
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import com.xjjk.healthyclients.R
|
||||
import com.xjjk.healthyclients.base.BaseVMBActivity
|
||||
import com.xjjk.healthyclients.databinding.ActivityEmptyBinding
|
||||
import com.xjjk.healthyclients.ui.viewmodel.HomeViewModel
|
||||
|
||||
/**
|
||||
* 空布局
|
||||
*/
|
||||
class EmptyActivity :
|
||||
BaseVMBActivity<HomeViewModel, ActivityEmptyBinding>(R.layout.activity_empty) {
|
||||
|
||||
|
||||
override fun initView(savedInstanceState: Bundle?) {
|
||||
}
|
||||
|
||||
override fun initData() {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
override fun bindEvent() {
|
||||
|
||||
}
|
||||
|
||||
|
||||
override fun processClick(paramView: View?) {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
package com.xjjk.healthyclients.ui.activity.home
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import com.xjjk.healthyclients.R
|
||||
import com.xjjk.healthyclients.base.BaseVMBActivity
|
||||
import com.xjjk.healthyclients.databinding.ActivityHomeBannerBinding
|
||||
import com.xjjk.healthyclients.ui.viewmodel.HomeViewModel
|
||||
|
||||
/**
|
||||
* 首页banner
|
||||
*/
|
||||
class HomeBannerDetailActivity :
|
||||
BaseVMBActivity<HomeViewModel, ActivityHomeBannerBinding>(R.layout.activity_home_banner) {
|
||||
|
||||
|
||||
|
||||
override fun initView(savedInstanceState: Bundle?) {
|
||||
}
|
||||
|
||||
override fun initData() {
|
||||
|
||||
}
|
||||
|
||||
override fun bindEvent() {
|
||||
}
|
||||
|
||||
override fun createObserve() {
|
||||
super.createObserve()
|
||||
|
||||
}
|
||||
|
||||
override fun processClick(paramView: View?) {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
package com.xjjk.healthyclients.ui.activity.home
|
||||
|
||||
import android.os.Bundle
|
||||
import android.text.TextUtils
|
||||
import android.view.View
|
||||
import androidx.lifecycle.Lifecycle
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.lifecycle.repeatOnLifecycle
|
||||
import com.sw.healthyclients.utils.DateUtil
|
||||
import com.xjjk.healthyclients.R
|
||||
import com.xjjk.healthyclients.base.BaseVMBActivity
|
||||
import com.xjjk.healthyclients.databinding.ActivityNoticeDetailBinding
|
||||
import com.xjjk.healthyclients.superfuntion.addImgHeader
|
||||
import com.xjjk.healthyclients.superfuntion.orEmptyDefault
|
||||
import com.xjjk.healthyclients.ui.viewmodel.HomeViewModel
|
||||
import kotlinx.coroutines.flow.collectLatest
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
/**
|
||||
* 首页通知消息详情
|
||||
*/
|
||||
class HomeNoticeDetailActivity :
|
||||
BaseVMBActivity<HomeViewModel, ActivityNoticeDetailBinding>(R.layout.activity_notice_detail) {
|
||||
|
||||
|
||||
override fun initView(savedInstanceState: Bundle?) {
|
||||
}
|
||||
|
||||
override fun initData() {
|
||||
val stringExtra = intent.getStringExtra("id")
|
||||
if (TextUtils.isEmpty(stringExtra)) {
|
||||
finish()
|
||||
} else {
|
||||
mViewModel.getHomeNoticeDetail(stringExtra!!)
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
override fun bindEvent() {
|
||||
}
|
||||
|
||||
override fun createObserve() {
|
||||
super.createObserve()
|
||||
lifecycleScope.launch {
|
||||
repeatOnLifecycle(Lifecycle.State.CREATED) {
|
||||
mViewModel.homeNoticeDetail.collectLatest {
|
||||
if (TextUtils.isEmpty(it?.content)) {
|
||||
return@collectLatest
|
||||
}
|
||||
mBinding.tvTitle.text = it?.title.orEmptyDefault()
|
||||
mBinding.tvDate.text = DateUtil.dateStrToStrMiddle(it?.createTime)
|
||||
|
||||
var content = it?.content
|
||||
|
||||
mBinding.apply {
|
||||
var css = "<style>img{max-width: 100%;}</style>"
|
||||
var html = css + content
|
||||
|
||||
webContent.loadDataWithBaseURL(
|
||||
null,
|
||||
html.addImgHeader(),
|
||||
"text/html",
|
||||
"UTF-8",
|
||||
null
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
override fun processClick(paramView: View?) {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
package com.xjjk.healthyclients.ui.activity.home
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import androidx.lifecycle.Lifecycle
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.lifecycle.repeatOnLifecycle
|
||||
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout
|
||||
import com.xjjk.healthyclients.R
|
||||
import com.xjjk.healthyclients.adapter.home.HomeMessageAdapter
|
||||
import com.xjjk.healthyclients.base.BaseVMBActivity
|
||||
import com.xjjk.healthyclients.bean.home.HomeNoticeBean
|
||||
import com.xjjk.healthyclients.databinding.ActivityNoticeListBinding
|
||||
import com.xjjk.healthyclients.superfuntion.initColors
|
||||
import com.xjjk.healthyclients.ui.viewmodel.HomeViewModel
|
||||
import kotlinx.coroutines.flow.collectLatest
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
/**
|
||||
* 首页通知消息列表
|
||||
*/
|
||||
class HomeNoticeListActivity :
|
||||
BaseVMBActivity<HomeViewModel, ActivityNoticeListBinding>(R.layout.activity_notice_list),
|
||||
SwipeRefreshLayout.OnRefreshListener {
|
||||
|
||||
val mAdapter: HomeMessageAdapter by lazy { HomeMessageAdapter() }
|
||||
|
||||
|
||||
override fun initView(savedInstanceState: Bundle?) {
|
||||
mBinding.apply {
|
||||
rvList.adapter = mAdapter
|
||||
swipeRefresh.initColors()
|
||||
swipeRefresh.setOnRefreshListener(this@HomeNoticeListActivity)
|
||||
initLoadMore()
|
||||
}
|
||||
}
|
||||
|
||||
override fun initData() {
|
||||
mViewModel.getHomeNoticeList()
|
||||
}
|
||||
|
||||
private fun initLoadMore() {
|
||||
mAdapter.loadMoreModule.setOnLoadMoreListener {
|
||||
mViewModel.getHomeNoticeList()
|
||||
}
|
||||
mAdapter.loadMoreModule.isAutoLoadMore = true
|
||||
//当自动加载开启,同时数据不满一屏时,是否继续执行自动加载更多(默认为true)
|
||||
mAdapter.loadMoreModule.isEnableLoadMoreIfNotFullPage = false
|
||||
}
|
||||
|
||||
|
||||
override fun bindEvent() {
|
||||
mAdapter.setOnItemClickListener { adapter, view, position ->
|
||||
val homeNoticeBean = adapter.data.get(position) as HomeNoticeBean
|
||||
val bundle = Bundle()
|
||||
bundle.putString("id", homeNoticeBean.id)
|
||||
|
||||
toActivity(HomeNoticeDetailActivity::class.java, bundle)
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
override fun createObserve() {
|
||||
super.createObserve()
|
||||
lifecycleScope.launch {
|
||||
repeatOnLifecycle(Lifecycle.State.CREATED) {
|
||||
mViewModel.homeNoticeList.collectLatest {
|
||||
if (it.isNullOrEmpty()) {
|
||||
return@collectLatest
|
||||
}
|
||||
mBinding.emptyView.visibility = View.GONE
|
||||
if (mViewModel.pageIndex.value <= 1) {
|
||||
mAdapter.setNewInstance(it)
|
||||
} else {
|
||||
mAdapter.addData(it)
|
||||
}
|
||||
mAdapter.loadMoreModule.loadMoreComplete()
|
||||
}
|
||||
}
|
||||
}
|
||||
lifecycleScope.launch {
|
||||
repeatOnLifecycle(Lifecycle.State.CREATED) {
|
||||
mViewModel.isLoadMoreEnd.collectLatest {
|
||||
if (it) {
|
||||
mAdapter.loadMoreModule?.loadMoreEnd(it)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
lifecycleScope.launch {
|
||||
repeatOnLifecycle(Lifecycle.State.CREATED) {
|
||||
mViewModel.isRefreshing.collectLatest {
|
||||
mBinding.swipeRefresh.isRefreshing = it
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
override fun processClick(paramView: View?) {
|
||||
|
||||
}
|
||||
|
||||
override fun onRefresh() {
|
||||
mViewModel.getHomeNoticeList(true)
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
package com.xjjk.healthyclients.ui.activity.home
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import com.xjjk.healthyclients.R
|
||||
import com.xjjk.healthyclients.adapter.home.HomeMessageAdapter
|
||||
import com.xjjk.healthyclients.base.BaseVMBActivity
|
||||
import com.xjjk.healthyclients.databinding.ActivityBankBinding
|
||||
import com.xjjk.healthyclients.ui.viewmodel.HomeViewModel
|
||||
|
||||
/**
|
||||
* 我的银行
|
||||
*/
|
||||
class MyBankLActivity :
|
||||
BaseVMBActivity<HomeViewModel, ActivityBankBinding>(R.layout.activity_bank) {
|
||||
|
||||
val mAdapter: HomeMessageAdapter by lazy { HomeMessageAdapter() }
|
||||
|
||||
|
||||
override fun initView(savedInstanceState: Bundle?) {
|
||||
mBinding.apply {
|
||||
}
|
||||
}
|
||||
|
||||
override fun initData() {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
override fun bindEvent() {
|
||||
|
||||
}
|
||||
|
||||
override fun createObserve() {
|
||||
super.createObserve()
|
||||
|
||||
}
|
||||
|
||||
override fun processClick(paramView: View?) {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,129 @@
|
||||
package com.xjjk.healthyclients.ui.viewmodel
|
||||
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import com.xjjk.healthyclients.base.viewmodel.BaseViewModel
|
||||
import com.xjjk.healthyclients.bean.guidance.GuidanceListBean
|
||||
import com.xjjk.healthyclients.bean.home.HomeBannerBean
|
||||
import com.xjjk.healthyclients.bean.home.HomeNoticeBean
|
||||
import com.xjjk.healthyclients.data.repository.GuidanceRepository
|
||||
import com.xjjk.healthyclients.data.repository.HomeRepository
|
||||
import com.xjjk.healthyclients.superfuntion.handleRequest
|
||||
import com.xjjk.healthyclients.superfuntion.launch
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.flow.MutableSharedFlow
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
class HomeViewModel : BaseViewModel() {
|
||||
|
||||
var mDoctorList = MutableStateFlow(ArrayList<GuidanceListBean>())
|
||||
|
||||
var homeNoticeRepeat = MutableSharedFlow<MutableList<HomeNoticeBean>?>()
|
||||
var homeNoticeList = MutableSharedFlow<MutableList<HomeNoticeBean>?>()
|
||||
var homeNoticeDetail = MutableSharedFlow<HomeNoticeBean?>()
|
||||
var homeBannerList = MutableSharedFlow<MutableList<HomeBannerBean>?>()
|
||||
|
||||
|
||||
var isRefreshing = MutableStateFlow(false)
|
||||
var isLoadMoreEnd = MutableSharedFlow<Boolean>()
|
||||
var pageIndex = MutableStateFlow(1)
|
||||
private val pageSize = 20
|
||||
|
||||
|
||||
override fun init() {
|
||||
}
|
||||
|
||||
fun selectDoctorRecommendHome() {
|
||||
launch(
|
||||
{
|
||||
|
||||
handleRequest(
|
||||
GuidanceRepository.selectDoctorRecommend(1,3),
|
||||
successBlock = {
|
||||
it.result?.let{ result ->
|
||||
if (result.isNotEmpty()) {
|
||||
mDoctorList.emit(result)
|
||||
}else{
|
||||
mDoctorList.emit(ArrayList<GuidanceListBean>())
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取首页消息通知列表
|
||||
*/
|
||||
fun getHomeNoticeList(isRefresh: Boolean = false) {
|
||||
launch(
|
||||
{
|
||||
if (isRefresh) {
|
||||
isRefreshing.emit(true)
|
||||
isLoadMoreEnd.emit(false)
|
||||
pageIndex.emit(1)
|
||||
}
|
||||
handleRequest(
|
||||
HomeRepository.getHomeNoticeList(pageIndex.value, pageSize),
|
||||
successBlock = {
|
||||
if (it.result.isNullOrEmpty()) {
|
||||
isLoadMoreEnd.emit(true)
|
||||
homeNoticeList.emit(mutableListOf())
|
||||
} else {
|
||||
homeNoticeList.emit(it.result)
|
||||
pageIndex.value++
|
||||
if (it.result.size < pageSize) {
|
||||
isLoadMoreEnd.emit(true)
|
||||
}
|
||||
}
|
||||
})
|
||||
}, finallyBlock = {
|
||||
isRefreshing.emit(false)
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* 首页消息轮询
|
||||
*/
|
||||
fun getHomeNoticeListRepeat() {
|
||||
viewModelScope.launch {
|
||||
repeat(100) {
|
||||
handleRequest(
|
||||
HomeRepository.getHomeNoticeList(1, 10),
|
||||
successBlock = {
|
||||
homeNoticeRepeat.emit(it.result)
|
||||
})
|
||||
delay(1000 * 120)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
fun getHomeNoticeDetail(id: String) {
|
||||
launch(
|
||||
{
|
||||
handleRequest(
|
||||
HomeRepository.getHomeNoticeDetail(id),
|
||||
successBlock = {
|
||||
homeNoticeDetail.emit(it.result)
|
||||
})
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
fun getHomeBannerList(showLocation: String) {
|
||||
launch(
|
||||
{
|
||||
handleRequest(
|
||||
HomeRepository.getHomeBannerList(showLocation),
|
||||
successBlock = {
|
||||
homeBannerList.emit(it.result)
|
||||
})
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,81 @@
|
||||
package com.xjjk.healthyclients.ui.viewmodel
|
||||
|
||||
import com.xjjk.healthyclients.base.viewmodel.BaseViewModel
|
||||
import com.xjjk.healthyclients.bean.user.CheckInBean
|
||||
import com.xjjk.healthyclients.data.repository.HomeRepository
|
||||
import com.xjjk.healthyclients.superfuntion.handleRequest
|
||||
import com.xjjk.healthyclients.superfuntion.launch
|
||||
import kotlinx.coroutines.flow.MutableSharedFlow
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
|
||||
/**
|
||||
* 手机银行
|
||||
*/
|
||||
class PointsViewModel : BaseViewModel() {
|
||||
|
||||
|
||||
var isRefreshing = MutableStateFlow(false)
|
||||
var isLoadMoreEnd = MutableSharedFlow<Boolean>()
|
||||
var pageIndex = MutableStateFlow(1)
|
||||
private val pageSize = 20
|
||||
|
||||
|
||||
override fun init() {
|
||||
|
||||
}
|
||||
|
||||
fun getUserPoints() {
|
||||
launch(
|
||||
{
|
||||
handleRequest(
|
||||
HomeRepository.getUserPoints(),
|
||||
successBlock = {
|
||||
})
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
fun getUserPointsTask() {
|
||||
launch(
|
||||
{
|
||||
handleRequest(
|
||||
HomeRepository.getUserPointsTask(),
|
||||
successBlock = {
|
||||
})
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
fun postUserPointsRecord(changeType: Int) {
|
||||
launch(
|
||||
{
|
||||
handleRequest(
|
||||
HomeRepository.postUserPointsRecord(changeType),
|
||||
successBlock = {
|
||||
})
|
||||
}
|
||||
)
|
||||
}
|
||||
fun postUserPointsRank(changeType: Int) {
|
||||
launch(
|
||||
{
|
||||
handleRequest(
|
||||
HomeRepository.postUserPointsRank(pageIndex.value,pageSize,changeType),
|
||||
successBlock = {
|
||||
})
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
fun postUserPointsCheckIn(checkInBean: CheckInBean) {
|
||||
launch(
|
||||
{
|
||||
handleRequest(
|
||||
HomeRepository.postUserPointsCheckIn(checkInBean),
|
||||
successBlock = {
|
||||
})
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 306 KiB |
|
After Width: | Height: | Size: 54 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 3.7 KiB |
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="line">
|
||||
|
||||
<stroke
|
||||
android:width="1dp"
|
||||
android:color="@color/gray_600"
|
||||
android:dashWidth="5dp"
|
||||
android:dashGap="2dp" />
|
||||
|
||||
</shape>
|
||||
@@ -15,7 +15,8 @@
|
||||
<include
|
||||
layout="@layout/lay_title_bar"
|
||||
android:id="@+id/toolbar_lay"
|
||||
app:darkStyle="@{true}" />
|
||||
app:darkStyle="@{true}"
|
||||
app:title="@{@string/title_register_title}"/>
|
||||
<androidx.core.widget.NestedScrollView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
|
||||
@@ -0,0 +1,95 @@
|
||||
<?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"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<data>
|
||||
|
||||
</data>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
|
||||
<include
|
||||
android:id="@+id/toolbar_lay"
|
||||
layout="@layout/lay_title_bar"
|
||||
app:darkStyle="@{true}"
|
||||
app:title="@{@string/title_home_notice}" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/white"
|
||||
android:orientation="vertical"
|
||||
android:paddingTop="10dp">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="20dp"
|
||||
android:text="可用积分"
|
||||
android:textSize="16sp"
|
||||
android:textColor="@color/text_black_33" />
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="5dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/available_points"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="20dp"
|
||||
android:layout_marginTop="5dp"
|
||||
android:textColor="@color/text_black_33"
|
||||
android:textSize="24sp"
|
||||
tools:text="16546" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_point"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:layout_marginLeft="20dp"
|
||||
android:textColor="@color/text_black_33"
|
||||
android:textSize="14sp"
|
||||
tools:text="累计积分:16544" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_redemption"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@+id/tv_point"
|
||||
android:layout_alignLeft="@+id/tv_point"
|
||||
android:layout_marginTop="5dp"
|
||||
android:textColor="@color/text_black_33"
|
||||
android:textSize="14sp"
|
||||
tools:text="累计积分:16544" />
|
||||
|
||||
<com.allen.library.shape.ShapeButton
|
||||
android:id="@+id/tv_get_point"
|
||||
android:layout_width="80dp"
|
||||
android:layout_height="36dp"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_marginTop="3dp"
|
||||
android:layout_marginRight="15dp"
|
||||
android:gravity="center"
|
||||
android:text="获取积分"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="14sp"
|
||||
app:shapeCornersRadius="8dp"
|
||||
app:shapeSolidColor="@color/theme_color" />
|
||||
</RelativeLayout>
|
||||
|
||||
<View
|
||||
android:layout_marginTop="5dp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="5dp"
|
||||
android:background="@drawable/imaginary_line"/>
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
</layout>
|
||||
@@ -0,0 +1,46 @@
|
||||
<?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"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<data>
|
||||
|
||||
</data>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
|
||||
<include
|
||||
android:id="@+id/toolbar_lay"
|
||||
layout="@layout/lay_title_bar"
|
||||
app:darkStyle="@{true}"
|
||||
app:title="@{@string/app_name}" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@color/white"
|
||||
android:gravity="center"
|
||||
android:orientation="vertical"
|
||||
android:paddingTop="10dp">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@mipmap/icon_empty_circle" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="15dp"
|
||||
android:text="~ 正在研发中,敬请期待 ~"
|
||||
android:textColor="@color/black_B6"
|
||||
android:textSize="16sp" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
</layout>
|
||||
@@ -0,0 +1,39 @@
|
||||
<?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>
|
||||
|
||||
</data>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
|
||||
<include
|
||||
android:id="@+id/toolbar_lay"
|
||||
layout="@layout/lay_title_bar"
|
||||
app:darkStyle="@{true}"
|
||||
app:title="@{@string/title_user_banner}" />
|
||||
|
||||
<ScrollView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<LinearLayout
|
||||
android:orientation="vertical"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1300dp"
|
||||
android:scaleType="fitXY"
|
||||
android:src="@mipmap/ic_home_banner_detail" />
|
||||
|
||||
</LinearLayout>
|
||||
</ScrollView>
|
||||
|
||||
</LinearLayout>
|
||||
</layout>
|
||||
@@ -0,0 +1,58 @@
|
||||
<?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"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<data>
|
||||
|
||||
</data>
|
||||
|
||||
<LinearLayout
|
||||
android:background="@color/white"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
|
||||
<include
|
||||
android:id="@+id/toolbar_lay"
|
||||
layout="@layout/lay_title_bar"
|
||||
app:darkStyle="@{true}"
|
||||
app:title="@{@string/title_home_notice_detail}" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_title"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="12dp"
|
||||
android:gravity="center_horizontal"
|
||||
android:layout_marginHorizontal="15dp"
|
||||
android:textColor="@color/text_black_33"
|
||||
android:textSize="16sp"
|
||||
android:textStyle="bold"
|
||||
tools:text="新疆app" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_date"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="12dp"
|
||||
android:gravity="end"
|
||||
android:paddingRight="15dp"
|
||||
android:textColor="@color/text_black_66"
|
||||
android:textSize="12sp"
|
||||
tools:text="新疆app" />
|
||||
<View
|
||||
android:layout_marginHorizontal="18dp"
|
||||
android:background="@drawable/imaginary_line"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="20dp"/>
|
||||
|
||||
<WebView
|
||||
android:id="@+id/web_content"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:paddingHorizontal="15dp"
|
||||
android:scrollbars="none" />
|
||||
|
||||
</LinearLayout>
|
||||
</layout>
|
||||
@@ -0,0 +1,45 @@
|
||||
<?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>
|
||||
|
||||
</data>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
|
||||
<include
|
||||
android:id="@+id/toolbar_lay"
|
||||
layout="@layout/lay_title_bar"
|
||||
app:darkStyle="@{true}"
|
||||
app:title="@{@string/title_home_notice}" />
|
||||
|
||||
|
||||
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
|
||||
android:id="@+id/swipe_refresh"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/rv_list"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
|
||||
|
||||
<include
|
||||
android:id="@+id/empty_view"
|
||||
layout="@layout/layout_empty" />
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
|
||||
|
||||
</LinearLayout>
|
||||
</layout>
|
||||
@@ -59,12 +59,12 @@
|
||||
</LinearLayout>
|
||||
</RelativeLayout>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/banner"
|
||||
android:layout_marginHorizontal="12dp"
|
||||
android:layout_width="match_parent"
|
||||
android:background="@mipmap/ic_home_banner"
|
||||
android:layout_height="120dp"/>
|
||||
<!-- <ImageView-->
|
||||
<!-- android:id="@+id/banner"-->
|
||||
<!-- android:layout_marginHorizontal="12dp"-->
|
||||
<!-- android:layout_width="match_parent"-->
|
||||
<!-- android:background="@mipmap/ic_home_banner"-->
|
||||
<!-- android:layout_height="120dp"/>-->
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
@@ -74,7 +74,7 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="@dimen/dp_18"
|
||||
android:layout_marginTop="@dimen/dp_22"
|
||||
android:layout_marginTop="@dimen/dp_12"
|
||||
android:text="专家咨询记录"
|
||||
android:textColor="#333333"
|
||||
android:textSize="@dimen/txt18"
|
||||
|
||||
@@ -0,0 +1,165 @@
|
||||
<?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"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:focusable="true"
|
||||
android:focusableInTouchMode="true"
|
||||
android:orientation="vertical">
|
||||
|
||||
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
|
||||
android:id="@+id/swipe_refresh"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<androidx.core.widget.NestedScrollView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:fillViewport="true">
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
android:paddingBottom="30dp">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/head_img"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:adjustViewBounds="true"
|
||||
android:scaleType="fitXY"
|
||||
android:src="@drawable/icon_home_head" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginTop="130dp"
|
||||
android:orientation="vertical">
|
||||
|
||||
<com.allen.library.shape.ShapeRelativeLayout
|
||||
android:id="@+id/layout_notice"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="40dp"
|
||||
android:layout_marginHorizontal="12dp"
|
||||
app:shapeCornersRadius="8dp"
|
||||
app:shapeGradientAngle="top_bottom"
|
||||
app:shapeGradientEndColor="#F2FFFD"
|
||||
app:shapeGradientStartColor="#DCFFFB"
|
||||
app:shapeSolidColor="@color/white"
|
||||
app:shapeStrokeColor="@color/white"
|
||||
app:shapeStrokeWidth="2dp">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="17dp"
|
||||
android:layout_height="17dp"
|
||||
android:layout_centerVertical="true"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:background="@drawable/icon_home_xiaolaba" />
|
||||
|
||||
<com.sunfusheng.marqueeview.MarqueeView
|
||||
android:id="@+id/home_marqueeView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginHorizontal="2dp"
|
||||
android:layout_marginVertical="2dp"
|
||||
android:layout_marginStart="36dp"
|
||||
android:layout_marginEnd="5dp"
|
||||
app:mvAnimDuration="1000"
|
||||
app:mvDirection="bottom_to_top"
|
||||
app:mvInterval="3000"
|
||||
app:mvSingleLine="false"
|
||||
app:mvTextColor="#77849E"
|
||||
app:mvTextSize="14sp" />
|
||||
|
||||
</com.allen.library.shape.ShapeRelativeLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_hi"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="24dp"
|
||||
android:layout_marginTop="10dp"
|
||||
android:ellipsize="end"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="12sp"
|
||||
tools:text="Hi~艾比拜·牙库甫" />
|
||||
|
||||
<include
|
||||
android:id="@+id/layout_item1"
|
||||
layout="@layout/home_layout_item1"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="6dp"
|
||||
android:layout_marginTop="10dp" />
|
||||
|
||||
<!-- <com.youth.banner.Banner-->
|
||||
<!-- android:id="@+id/banner1"-->
|
||||
<!-- android:layout_width="match_parent"-->
|
||||
<!-- android:layout_height="120dp"-->
|
||||
<!-- android:layout_below="@+id/layout_item1"-->
|
||||
<!-- android:layout_marginHorizontal="12dp"-->
|
||||
<!-- android:layout_marginTop="10dp" />-->
|
||||
<ImageView
|
||||
android:id="@+id/image1"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="12dp"
|
||||
android:layout_marginTop="12dp"
|
||||
android:background="@mipmap/ic_home_image1" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/image2"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="12dp"
|
||||
android:layout_marginTop="12dp"
|
||||
android:background="@mipmap/ic_home_image2" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/image3"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="12dp"
|
||||
android:layout_marginTop="12dp"
|
||||
android:background="@mipmap/ic_home_image3" />
|
||||
|
||||
<include
|
||||
android:id="@+id/layout_item3"
|
||||
layout="@layout/home_layout_item3"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="12dp"
|
||||
android:layout_marginTop="10dp" />
|
||||
|
||||
<include
|
||||
android:id="@+id/layout_item4"
|
||||
layout="@layout/home_layout_item4"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
<!-- <com.youth.banner.Banner-->
|
||||
<!-- android:id="@+id/banner2"-->
|
||||
<!-- android:layout_width="match_parent"-->
|
||||
<!-- android:layout_height="wrap_content"-->
|
||||
<!-- android:layout_below="@+id/layout_item4"-->
|
||||
<!-- android:layout_marginHorizontal="12dp"-->
|
||||
<!-- android:layout_marginTop="10dp" />-->
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/image4"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="12dp"
|
||||
android:background="@mipmap/ic_home_image4" />
|
||||
</LinearLayout>
|
||||
|
||||
</RelativeLayout>
|
||||
</androidx.core.widget.NestedScrollView>
|
||||
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
|
||||
</LinearLayout>
|
||||
</layout>
|
||||
@@ -0,0 +1,216 @@
|
||||
<?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"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<data>
|
||||
|
||||
</data>
|
||||
|
||||
<com.allen.library.shape.ShapeLinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
app:shapeCornersRadius="12dp"
|
||||
app:shapeSolidColor="#88EBFFFD">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="15dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:ellipsize="end"
|
||||
android:text="今日健康积分"
|
||||
android:textColor="#116F6B"
|
||||
android:textSize="12sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_today_points"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="6dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:ellipsize="end"
|
||||
android:text="0"
|
||||
android:textColor="#116F6B"
|
||||
android:textSize="14sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<View
|
||||
android:layout_width="1dp"
|
||||
android:layout_height="12dp"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:layout_marginTop="12dp"
|
||||
android:background="#116F6B" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:ellipsize="end"
|
||||
android:gravity="center"
|
||||
android:text="累计积分"
|
||||
android:textColor="#116F6B"
|
||||
android:textSize="12sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_total_points"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="6dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:ellipsize="end"
|
||||
android:text="0"
|
||||
android:textColor="#116F6B"
|
||||
android:textSize="14sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<com.allen.library.shape.ShapeLinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="93dp"
|
||||
android:layout_marginHorizontal="6dp"
|
||||
android:layout_marginTop="5dp"
|
||||
android:layout_marginBottom="6dp"
|
||||
android:orientation="horizontal"
|
||||
app:shapeCornersRadius="6dp"
|
||||
app:shapeSolidColor="@color/white">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/home_head_tab1"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1"
|
||||
android:descendantFocusability="blocksDescendants"
|
||||
android:gravity="center"
|
||||
android:orientation="vertical">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:scaleType="fitXY"
|
||||
android:src="@mipmap/ic_home_head_tab1" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="5dp"
|
||||
android:autoSizeMaxTextSize="80sp"
|
||||
android:autoSizeMinTextSize="2sp"
|
||||
android:autoSizeTextType="uniform"
|
||||
android:gravity="center_horizontal"
|
||||
android:maxLines="1"
|
||||
android:text="健康档案"
|
||||
android:textColor="@color/text_black_33"
|
||||
android:textSize="14sp"
|
||||
android:textStyle="bold" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/home_head_tab2"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1"
|
||||
android:descendantFocusability="blocksDescendants"
|
||||
android:gravity="center"
|
||||
android:orientation="vertical">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:scaleType="fitXY"
|
||||
android:src="@mipmap/ic_home_head_tab2" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="5dp"
|
||||
android:autoSizeMaxTextSize="80sp"
|
||||
android:autoSizeMinTextSize="2sp"
|
||||
android:autoSizeTextType="uniform"
|
||||
android:gravity="center_horizontal"
|
||||
android:maxLines="1"
|
||||
android:text="健康体检"
|
||||
android:textColor="@color/text_black_33"
|
||||
android:textSize="14sp"
|
||||
android:textStyle="bold" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/home_head_tab3"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1"
|
||||
android:descendantFocusability="blocksDescendants"
|
||||
android:gravity="center"
|
||||
android:orientation="vertical">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:scaleType="fitXY"
|
||||
android:src="@mipmap/ic_home_head_tab3" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="5dp"
|
||||
android:autoSizeMaxTextSize="80sp"
|
||||
android:autoSizeMinTextSize="2sp"
|
||||
android:autoSizeTextType="uniform"
|
||||
android:gravity="center_horizontal"
|
||||
android:maxLines="1"
|
||||
android:text="应急就医"
|
||||
android:textColor="@color/text_black_33"
|
||||
android:textSize="14sp"
|
||||
android:textStyle="bold" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/home_head_tab4"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1"
|
||||
android:descendantFocusability="blocksDescendants"
|
||||
android:gravity="center"
|
||||
android:orientation="vertical">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:scaleType="fitXY"
|
||||
android:src="@mipmap/ic_home_head_tab4" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="5dp"
|
||||
android:autoSizeMaxTextSize="80sp"
|
||||
android:autoSizeMinTextSize="2sp"
|
||||
android:autoSizeTextType="uniform"
|
||||
android:gravity="center_horizontal"
|
||||
android:maxLines="1"
|
||||
android:text="健康银行"
|
||||
android:textColor="@color/text_black_33"
|
||||
android:textSize="14sp"
|
||||
android:textStyle="bold" />
|
||||
</LinearLayout>
|
||||
|
||||
</com.allen.library.shape.ShapeLinearLayout>
|
||||
</com.allen.library.shape.ShapeLinearLayout>
|
||||
</layout>
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,74 @@
|
||||
<?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"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<data>
|
||||
|
||||
</data>
|
||||
|
||||
<com.allen.library.shape.ShapeRelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:shapeCornersRadius="12dp"
|
||||
app:shapeSolidColor="@color/white">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:background="@mipmap/ic_home_item_head_bg"
|
||||
android:scaleType="fitXY">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="15dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:ellipsize="end"
|
||||
android:text="员工体检"
|
||||
android:textColor="@color/text_black_33"
|
||||
android:textSize="16sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<ImageView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="20dp"
|
||||
android:layout_marginTop="40dp"
|
||||
android:background="@mipmap/ic_home_item_head_bg2" />
|
||||
|
||||
<com.allen.library.shape.ShapeRelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="86dp"
|
||||
android:layout_marginTop="60dp"
|
||||
android:orientation="vertical"
|
||||
app:shadowCornersBottomRightRadius="12dp"
|
||||
app:shapeCornersBottomLeftRadius="12dp"
|
||||
app:shapeSolidColor="@color/white">
|
||||
<ImageView
|
||||
android:layout_centerHorizontal="true"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/icon_empty"/>
|
||||
<TextView
|
||||
android:layout_marginBottom="10dp"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="15dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:ellipsize="end"
|
||||
android:text="~ 体检暂未开始 ~"
|
||||
android:textColor="@color/black_B6"
|
||||
android:textSize="11sp" />
|
||||
|
||||
</com.allen.library.shape.ShapeRelativeLayout>
|
||||
</com.allen.library.shape.ShapeRelativeLayout>
|
||||
</layout>
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,90 @@
|
||||
<?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"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<data>
|
||||
|
||||
</data>
|
||||
|
||||
<com.allen.library.shape.ShapeRelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:shapeCornersRadius="12dp">
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/tv_doctor_more"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:background="@mipmap/ic_home_item_head_bg"
|
||||
android:scaleType="fitXY">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="15dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:ellipsize="end"
|
||||
android:text="专家咨询记录"
|
||||
android:textColor="@color/text_black_33"
|
||||
android:textSize="16sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<ImageView
|
||||
android:layout_width="16dp"
|
||||
android:layout_height="16dp"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_marginTop="12dp"
|
||||
android:layout_marginRight="15dp"
|
||||
android:background="@drawable/arrow_right"
|
||||
android:padding="10dp" />
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
<com.allen.library.shape.ShapeRelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="40dp"
|
||||
android:orientation="vertical"
|
||||
app:shadowCornersBottomRightRadius="12dp"
|
||||
app:shapeCornersBottomLeftRadius="12dp"
|
||||
app:shapeSolidColor="#F5F7FB">
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/fragment_guidance_rv_doctor"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:visibility="gone" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/ll_empty"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/dp_91"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_marginTop="40dp"
|
||||
android:layout_marginBottom="40dp"
|
||||
android:gravity="center_horizontal"
|
||||
android:orientation="vertical"
|
||||
android:visibility="visible">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="@dimen/dp_101"
|
||||
android:layout_height="@dimen/dp_60"
|
||||
android:src="@drawable/ic_message_empty" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="暂无咨询记录"
|
||||
android:textColor="#14BEBE"
|
||||
android:textSize="@dimen/txt15" />
|
||||
</LinearLayout>
|
||||
|
||||
</com.allen.library.shape.ShapeRelativeLayout>
|
||||
</com.allen.library.shape.ShapeRelativeLayout>
|
||||
</layout>
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,86 @@
|
||||
<?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"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<data>
|
||||
|
||||
</data>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/img_left"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginRight="-5dp"
|
||||
android:layout_weight="1">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:scaleType="fitXY"
|
||||
android:src="@mipmap/ic_home_view_left" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="25dp"
|
||||
android:layout_marginTop="21dp"
|
||||
android:text="智慧体重"
|
||||
android:textColor="@color/text_black_33"
|
||||
android:textSize="15sp" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="25dp"
|
||||
android:layout_marginTop="44dp"
|
||||
android:text="智追体重 科学控重"
|
||||
android:textColor="#808080"
|
||||
android:textSize="11sp" />
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/img_right"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="-5dp"
|
||||
android:layout_weight="1">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:scaleType="fitXY"
|
||||
android:src="@mipmap/ic_home_view_right" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="25dp"
|
||||
android:layout_marginTop="21dp"
|
||||
android:text="一人一案"
|
||||
android:textColor="@color/text_black_33"
|
||||
android:textSize="15sp" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="25dp"
|
||||
android:layout_marginTop="44dp"
|
||||
android:text="定制专属健康方案"
|
||||
android:textColor="#808080"
|
||||
android:textSize="11sp" />
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
</layout>
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout 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="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_10">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_marginLeft="15dp"
|
||||
android:background="@color/gray_400" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="60dp"
|
||||
android:layout_marginBottom="5dp"
|
||||
android:gravity="center_horizontal" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_point"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@+id/tv_title"
|
||||
android:layout_marginLeft="60dp"
|
||||
android:layout_marginBottom="5dp"
|
||||
android:gravity="center_horizontal" />
|
||||
|
||||
<com.allen.library.shape.ShapeTextView
|
||||
android:id="@+id/btn_points"
|
||||
android:layout_width="90dp"
|
||||
android:layout_height="38dp"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_marginRight="15dp"
|
||||
android:gravity="center"
|
||||
android:text="打卡"
|
||||
android:textColor="@color/theme_color"
|
||||
app:shapeCornersRadius="8dp"
|
||||
app:shapeSolidColor="@color/white"
|
||||
app:shapeStrokeColor="@color/theme_color"
|
||||
app:shapeStrokeWidth="1dp" />
|
||||
|
||||
|
||||
</RelativeLayout>
|
||||
@@ -13,7 +13,7 @@
|
||||
android:layout_height="@dimen/dp_60"
|
||||
android:layout_marginLeft="@dimen/dp_15"
|
||||
android:layout_marginTop="@dimen/dp_15"
|
||||
android:scaleType="centerCrop"/>
|
||||
android:scaleType="centerCrop" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/item_tv_name"
|
||||
@@ -51,63 +51,66 @@
|
||||
android:layout_below="@+id/item_tv_name"
|
||||
android:layout_marginLeft="@dimen/dp_15"
|
||||
android:layout_marginTop="10dp"
|
||||
android:textSize="@dimen/txt12"
|
||||
android:paddingRight="@dimen/dp_6"
|
||||
android:paddingLeft="@dimen/dp_6"
|
||||
android:paddingBottom="@dimen/dp_3"
|
||||
android:paddingTop="@dimen/dp_3"
|
||||
android:layout_toRightOf="@+id/item_iv_icon"
|
||||
android:background="#FFF8ED"
|
||||
android:paddingLeft="@dimen/dp_6"
|
||||
android:paddingTop="@dimen/dp_3"
|
||||
android:paddingRight="@dimen/dp_6"
|
||||
android:paddingBottom="@dimen/dp_3"
|
||||
android:textSize="@dimen/txt12"
|
||||
tools:text="三级甲等" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/item_hospital_name"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignBaseline="@+id/item_tag"
|
||||
android:layout_marginLeft="@dimen/dp_15"
|
||||
android:layout_marginTop="10dp"
|
||||
android:textSize="@dimen/txt12"
|
||||
android:layout_toRightOf="@+id/item_tag"
|
||||
android:textColor="@color/text_black_99"
|
||||
android:layout_alignBaseline="@+id/item_tag"
|
||||
android:textSize="@dimen/txt12"
|
||||
tools:text="空军军医大学西京医院" />
|
||||
|
||||
<View
|
||||
android:id="@+id/v_line"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/dp_1"
|
||||
android:background="@color/line"
|
||||
android:layout_below="@+id/item_iv_icon"
|
||||
android:layout_margin="@dimen/dp_15"
|
||||
/>
|
||||
android:layout_below="@+id/item_hospital_name"
|
||||
android:layout_marginHorizontal="15dp"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:background="@color/line" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_guidance_name"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
tools:text="咨询人:莱希奥"
|
||||
android:textColor="@color/text_black_66"
|
||||
android:textSize="@dimen/txt12"
|
||||
android:layout_below="@+id/v_line"
|
||||
android:layout_marginLeft="@dimen/dp_15"
|
||||
android:layout_marginBottom="@dimen/dp_15"
|
||||
android:layout_below="@+id/v_line"
|
||||
/>
|
||||
android:textColor="@color/text_black_66"
|
||||
android:textSize="@dimen/txt12"
|
||||
tools:text="咨询人:莱希奥" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_guidance_time"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
tools:text="2024-06-17 10:26:37"
|
||||
android:layout_below="@+id/v_line"
|
||||
android:layout_alignParentRight="true"
|
||||
android:textColor="@color/text_black_66"
|
||||
android:textSize="@dimen/txt12"
|
||||
android:layout_marginRight="@dimen/dp_15"
|
||||
android:layout_marginBottom="@dimen/dp_15"
|
||||
android:layout_below="@+id/v_line"
|
||||
/>
|
||||
android:textColor="@color/text_black_66"
|
||||
android:textSize="@dimen/txt12"
|
||||
tools:text="2024-06-17 10:26:37" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/item_guidance_state"
|
||||
android:layout_width="@dimen/dp_61"
|
||||
android:layout_height="@dimen/dp_26"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_marginTop="3dp"
|
||||
android:layout_marginRight="3dp"
|
||||
android:layout_alignParentRight="true"
|
||||
android:src="@drawable/ic_guidance_finish"
|
||||
/>
|
||||
android:src="@drawable/ic_guidance_finish" />
|
||||
</RelativeLayout>
|
||||
@@ -0,0 +1,48 @@
|
||||
<?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:orientation="vertical">
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="10dp"
|
||||
android:layout_marginTop="10dp">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:background="@mipmap/ic_xiaolaba" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="30dp"
|
||||
android:ellipsize="end"
|
||||
android:lines="2"
|
||||
android:textColor="@color/color_theme_or_black_33"
|
||||
tools:text="这是一个测试通知的内容,主要内容就是写一些文字,然后看看写的怎么样.这是一个测试通知的内容,主要内容就是写一些文字,然后看看写的怎么样" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_date"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@+id/tv_title"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_marginRight="5dp"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:textColor="@color/color_theme_or_black_33"
|
||||
android:textSize="@dimen/txt12"
|
||||
tools:text="2025-01-01" />
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
android:background="@color/text_black_99" />
|
||||
</LinearLayout>
|
||||
|
After Width: | Height: | Size: 5.6 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 8.5 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 214 KiB |
|
After Width: | Height: | Size: 198 KiB |
|
After Width: | Height: | Size: 474 KiB |
|
After Width: | Height: | Size: 280 KiB |
|
After Width: | Height: | Size: 116 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 92 KiB |
|
After Width: | Height: | Size: 138 KiB |
|
After Width: | Height: | Size: 28 KiB |
@@ -25,7 +25,10 @@
|
||||
<string name="title_retrieve_password">找回密码</string>
|
||||
<string name="title_change_password">修改密码</string>
|
||||
<string name="title_user_banner">员工心理帮助计划</string>
|
||||
<string name="title_home_notice">我的消息通知</string>
|
||||
<string name="title_home_notice">我的消息</string>
|
||||
<string name="title_bank">我的健康银行</string>
|
||||
<string name="title_home_notice_detail">消息详情</string>
|
||||
<string name="title_register_title">预约详情</string>
|
||||
<string name="title_check_up_detail">体检信息</string>
|
||||
<string name="title_check_record_list">历年体检报告</string>
|
||||
<string name="title_check_up_consult">一键咨询</string>
|
||||
|
||||