feat(chat): 添加群成员职位显示和更新功能
- 在 AddMemberActivity 中为 ExpertBean 和 EmployeeBean 添加职位获取方法 - 扩展 AddMemberAdapter 以显示成员职位信息 - 添加 ExpertBean 的 post_dictText 字段用于职位文本显示 - 更新群组聊天界面布局以显示成员职位 - 添加更新群成员按钮和相关功能实现 - 优化群组提示监听器的时序问题处理 - 修改提案页面布局中的占位文本为实际数据绑定 - 添加应急工单对话框的新样式和相关资源文件
This commit is contained in:
@@ -85,13 +85,16 @@ data class ProposalBean(
|
|||||||
val bodyFatPercentNew: String,
|
val bodyFatPercentNew: String,
|
||||||
val weightRiskType: String,
|
val weightRiskType: String,
|
||||||
val hypertension: Int,
|
val hypertension: Int,
|
||||||
val systolicPressureAvg: String,
|
val systolicPressureAvg: String?,
|
||||||
val systolicPressureTarget: String,
|
val systolicPressureTarget: String?,
|
||||||
val diastolicPressureAvg: String,
|
val systolicPressureCurrent: String?,
|
||||||
val diastolicPressureTarget: String,
|
val diastolicPressureAvg: String?,
|
||||||
|
val diastolicPressureTarget: String?,
|
||||||
|
val diastolicPressureCurrent: String?,
|
||||||
val diabetes: Int,
|
val diabetes: Int,
|
||||||
val glu: String,
|
val glu: String,
|
||||||
val bloodSugarTarget: String,
|
val bloodSugarTarget: String?,
|
||||||
|
val bloodSugarCurrent: String?,
|
||||||
val ldl: String,
|
val ldl: String,
|
||||||
val ldlTarget: String,
|
val ldlTarget: String,
|
||||||
val tc: String,
|
val tc: String,
|
||||||
@@ -118,10 +121,10 @@ data class ProposalBean(
|
|||||||
val sportGuideResponse: String,
|
val sportGuideResponse: String,
|
||||||
val lifeManage: String,
|
val lifeManage: String,
|
||||||
val lifeManageResponse: String,
|
val lifeManageResponse: String,
|
||||||
val cabinOpinion: String,
|
val cabinOpinion: String?,
|
||||||
val cabinOpinionTime: String,
|
val cabinOpinionTime: String,
|
||||||
val cabinOpinionUserName: String,
|
val cabinOpinionUserName: String,
|
||||||
val expertOpinion: String,
|
val expertOpinion: String?,
|
||||||
val expertOpinionTime: String,
|
val expertOpinionTime: String,
|
||||||
val expertOpinionUserName: String
|
val expertOpinionUserName: String
|
||||||
)
|
)
|
||||||
@@ -5,12 +5,13 @@ import android.app.Dialog
|
|||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.graphics.BitmapFactory
|
import android.graphics.BitmapFactory
|
||||||
import android.graphics.Color
|
import android.graphics.Color
|
||||||
|
import android.graphics.Rect
|
||||||
|
import android.graphics.drawable.ColorDrawable
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.text.TextUtils
|
import android.text.TextUtils
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import android.view.Gravity
|
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.WindowManager
|
import android.view.WindowManager
|
||||||
import androidx.annotation.RequiresApi
|
import androidx.annotation.RequiresApi
|
||||||
@@ -57,6 +58,7 @@ import com.xjjk.healthyclients.utils.MapUtils
|
|||||||
import com.xjjk.healthyclients.utils.SystemFuntion.goNavigation
|
import com.xjjk.healthyclients.utils.SystemFuntion.goNavigation
|
||||||
import com.xjjk.healthyclients.utils.TUIUtils
|
import com.xjjk.healthyclients.utils.TUIUtils
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import com.tencent.qcloud.tuicore.util.ToastUtil
|
import com.tencent.qcloud.tuicore.util.ToastUtil
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.async
|
import kotlinx.coroutines.async
|
||||||
@@ -205,7 +207,7 @@ class EmergencyFragment :
|
|||||||
ParamedicOperateHelper.getInstance().setListener(paramedicOperateListener)
|
ParamedicOperateHelper.getInstance().setListener(paramedicOperateListener)
|
||||||
|
|
||||||
mViewModel.isLiaisonUser { result ->
|
mViewModel.isLiaisonUser { result ->
|
||||||
if (result) {
|
if (!result) {
|
||||||
mBinding.fragmentEmergencyParamedic.visibility = View.GONE
|
mBinding.fragmentEmergencyParamedic.visibility = View.GONE
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -415,17 +417,15 @@ class EmergencyFragment :
|
|||||||
if (result.records.isNullOrEmpty()) {
|
if (result.records.isNullOrEmpty()) {
|
||||||
ToastUtil.toastLongMessage("暂无参与的应急就医工单")
|
ToastUtil.toastLongMessage("暂无参与的应急就医工单")
|
||||||
} else if(result.records.size == 1){
|
} else if(result.records.size == 1){
|
||||||
showChatListDialog(result.records,onChatSelected = {groupInfo ->
|
mViewModel.getActualGroupMemberList(result.records[0].sessionId, successCall = {groupMemberBeans->
|
||||||
mViewModel.getActualGroupMemberList(groupInfo.sessionId, successCall = {groupMemberBeans->
|
IMInputActionSettingUtils.createEmergencySetting()
|
||||||
IMInputActionSettingUtils.createEmergencySetting()
|
activity?.startGroupChat(
|
||||||
activity?.startGroupChat(
|
result.records[0].sessionId,
|
||||||
groupInfo.sessionId,
|
getString(R.string.title_paramedic_group),
|
||||||
getString(R.string.title_paramedic_group),
|
false,
|
||||||
false,
|
groupMemberBeans.map { it1 -> it1.userId }.toList() as ArrayList<String>?,
|
||||||
groupMemberBeans.map { it1 -> it1.userId }.toList() as ArrayList<String>?,
|
workBean = WorkBean(result.records[0].orderId, TUIUtils.WORK_TYPE_EMERGENCY)
|
||||||
workBean = WorkBean(groupInfo.orderId, TUIUtils.WORK_TYPE_EMERGENCY)
|
)
|
||||||
)
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
}else{
|
}else{
|
||||||
showChatListDialog(result.records,onChatSelected = {groupInfo ->
|
showChatListDialog(result.records,onChatSelected = {groupInfo ->
|
||||||
@@ -478,34 +478,67 @@ class EmergencyFragment :
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 展示急救订单列表Dialog,供用户选择历史订单继续聊天
|
* 展示急救工单选择Dialog(Figma设计稿)
|
||||||
*/
|
*/
|
||||||
private fun showChatListDialog(
|
private fun showChatListDialog(
|
||||||
records: List<GroupInfo>,
|
records: List<GroupInfo>,
|
||||||
onChatSelected: (GroupInfo) -> Unit
|
onChatSelected: (GroupInfo) -> Unit
|
||||||
) {
|
) {
|
||||||
context?.let { ctx ->
|
context?.let { ctx ->
|
||||||
val dialog = Dialog(ctx, com.xjjk.healthyclients.R.style.DialogTheme)
|
val dialog = Dialog(ctx, com.xjjk.healthyclients.R.style.EmergencyDialogTheme)
|
||||||
val binding = DialogGroupInfoListBinding.inflate(layoutInflater)
|
val binding = DialogGroupInfoListBinding.inflate(layoutInflater)
|
||||||
|
|
||||||
binding.rvGroupList.layoutManager = LinearLayoutManager(ctx)
|
val adapter = GroupInfoAdapter(records) { selectedPos ->
|
||||||
binding.rvGroupList.adapter = GroupInfoAdapter(records) { groupInfo ->
|
// 选中变化时更新确认按钮状态
|
||||||
onChatSelected(groupInfo)
|
val hasSelection = selectedPos >= 0
|
||||||
dialog.dismiss()
|
binding.tvConfirm.isEnabled = hasSelection
|
||||||
|
binding.tvConfirm.alpha = if (hasSelection) 1.0f else 0.4f
|
||||||
}
|
}
|
||||||
|
|
||||||
binding.tvCancel.setOnClickListener { dialog.dismiss() }
|
binding.rvGroupList.layoutManager = LinearLayoutManager(ctx)
|
||||||
|
binding.rvGroupList.adapter = adapter.apply {
|
||||||
|
// 初始禁用确认按钮
|
||||||
|
binding.tvConfirm.isEnabled = false
|
||||||
|
binding.tvConfirm.alpha = 0.4f
|
||||||
|
}
|
||||||
|
|
||||||
|
// 列表项间距
|
||||||
|
val spacing = ctx.resources.getDimensionPixelSize(com.xjjk.healthyclients.R.dimen.dp_12)
|
||||||
|
binding.rvGroupList.addItemDecoration(object : RecyclerView.ItemDecoration() {
|
||||||
|
override fun getItemOffsets(
|
||||||
|
outRect: Rect,
|
||||||
|
view: View,
|
||||||
|
parent: RecyclerView,
|
||||||
|
state: RecyclerView.State
|
||||||
|
) {
|
||||||
|
outRect.bottom = spacing
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// 确认按钮点击
|
||||||
|
binding.tvConfirm.setOnClickListener {
|
||||||
|
adapter.selectedItem?.let { item ->
|
||||||
|
onChatSelected(item)
|
||||||
|
dialog.dismiss()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 右上角X关闭
|
||||||
|
binding.ivClose.setOnClickListener { dialog.dismiss() }
|
||||||
|
|
||||||
|
// 点击卡片外部区域关闭
|
||||||
|
binding.flRoot.setOnClickListener { dialog.dismiss() }
|
||||||
|
|
||||||
dialog.setContentView(binding.root)
|
dialog.setContentView(binding.root)
|
||||||
dialog.setCanceledOnTouchOutside(true)
|
dialog.setCanceledOnTouchOutside(true)
|
||||||
dialog.setCancelable(true)
|
dialog.setCancelable(true)
|
||||||
|
|
||||||
dialog.window?.let { window ->
|
dialog.window?.let { window ->
|
||||||
window.setGravity(Gravity.BOTTOM)
|
window.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
|
||||||
window.setWindowAnimations(com.xjjk.healthyclients.R.style.main_menu_animStyle)
|
window.decorView.setBackgroundColor(Color.TRANSPARENT)
|
||||||
window.setLayout(
|
window.setLayout(
|
||||||
WindowManager.LayoutParams.MATCH_PARENT,
|
WindowManager.LayoutParams.MATCH_PARENT,
|
||||||
WindowManager.LayoutParams.WRAP_CONTENT
|
WindowManager.LayoutParams.MATCH_PARENT
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
dialog.show()
|
dialog.show()
|
||||||
|
|||||||
@@ -1,45 +1,118 @@
|
|||||||
package com.xjjk.healthyclients.fragment.adapter
|
package com.xjjk.healthyclients.fragment.adapter
|
||||||
|
|
||||||
|
import android.content.res.ColorStateList
|
||||||
|
import android.graphics.Color
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
|
import androidx.core.content.ContextCompat
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import com.xjjk.healthyclients.bean.emergency.GroupInfo
|
import com.xjjk.healthyclients.bean.emergency.GroupInfo
|
||||||
import com.xjjk.healthyclients.databinding.ItemGroupInfoBinding
|
import com.xjjk.healthyclients.databinding.ItemGroupInfoBinding
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 急救订单列表适配器
|
* 急救工单选择适配器,支持单选
|
||||||
*/
|
*/
|
||||||
class GroupInfoAdapter(
|
class GroupInfoAdapter(
|
||||||
private val items: List<GroupInfo>,
|
private val items: List<GroupInfo>,
|
||||||
private val onItemClick: (GroupInfo) -> Unit
|
private val onSelectionChanged: (Int) -> Unit
|
||||||
) : RecyclerView.Adapter<GroupInfoAdapter.ViewHolder>() {
|
) : RecyclerView.Adapter<GroupInfoAdapter.ViewHolder>() {
|
||||||
|
|
||||||
inner class ViewHolder(private val binding: ItemGroupInfoBinding) :
|
/** 当前选中位置,-1 表示无选中 */
|
||||||
RecyclerView.ViewHolder(binding.root) {
|
var selectedPosition = -1
|
||||||
|
private set
|
||||||
|
|
||||||
fun bind(groupInfo: GroupInfo) {
|
/** 获取当前选中的工单 */
|
||||||
binding.tvUserName.text = groupInfo.salvageUserName
|
val selectedItem: GroupInfo?
|
||||||
val sex = when (groupInfo.salvageUserSex) {
|
get() = if (selectedPosition in items.indices) items[selectedPosition] else null
|
||||||
"1" -> "女"
|
|
||||||
"2" -> "男"
|
/** 选中主色 */
|
||||||
else -> "--"
|
private var colorPrimary = 0
|
||||||
}
|
/** 未选中灰色 */
|
||||||
binding.tvUserSex.text = sex
|
private var colorGray = 0
|
||||||
binding.tvOrgName.text = groupInfo.orgName
|
private var colorDark = 0
|
||||||
binding.root.setOnClickListener { onItemClick(groupInfo) }
|
private var colorBody = 0
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
|
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
|
||||||
val binding = ItemGroupInfoBinding.inflate(
|
val binding = ItemGroupInfoBinding.inflate(
|
||||||
LayoutInflater.from(parent.context), parent, false
|
LayoutInflater.from(parent.context), parent, false
|
||||||
)
|
)
|
||||||
|
// 初始化颜色值
|
||||||
|
if (colorPrimary == 0) {
|
||||||
|
colorPrimary = ContextCompat.getColor(parent.context, com.xjjk.healthyclients.R.color.emergency_primary)
|
||||||
|
colorGray = ContextCompat.getColor(parent.context, com.xjjk.healthyclients.R.color.emergency_text_gray)
|
||||||
|
colorDark = ContextCompat.getColor(parent.context, com.xjjk.healthyclients.R.color.emergency_text_dark)
|
||||||
|
colorBody = ContextCompat.getColor(parent.context, com.xjjk.healthyclients.R.color.emergency_text_body)
|
||||||
|
}
|
||||||
return ViewHolder(binding)
|
return ViewHolder(binding)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
|
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
|
||||||
holder.bind(items[position])
|
holder.bind(items[position], position == selectedPosition)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getItemCount(): Int = items.size
|
override fun getItemCount(): Int = items.size
|
||||||
|
|
||||||
|
inner class ViewHolder(private val binding: ItemGroupInfoBinding) :
|
||||||
|
RecyclerView.ViewHolder(binding.root) {
|
||||||
|
|
||||||
|
private var currentPosition = -1
|
||||||
|
|
||||||
|
init {
|
||||||
|
binding.rootItem.setOnClickListener {
|
||||||
|
val oldPos = selectedPosition
|
||||||
|
if (oldPos == currentPosition) {
|
||||||
|
// 取消选中
|
||||||
|
selectedPosition = -1
|
||||||
|
notifyItemChanged(currentPosition)
|
||||||
|
onSelectionChanged(-1)
|
||||||
|
} else {
|
||||||
|
selectedPosition = currentPosition
|
||||||
|
notifyItemChanged(oldPos)
|
||||||
|
notifyItemChanged(currentPosition)
|
||||||
|
onSelectionChanged(currentPosition)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun bind(groupInfo: GroupInfo, isSelected: Boolean) {
|
||||||
|
currentPosition = adapterPosition
|
||||||
|
val ctx = binding.root.context
|
||||||
|
|
||||||
|
// 姓名
|
||||||
|
binding.tvUserName.text = groupInfo.salvageUserName
|
||||||
|
|
||||||
|
// 部门标签
|
||||||
|
binding.tvDeptName.text = groupInfo.deptName
|
||||||
|
|
||||||
|
// 地址
|
||||||
|
binding.tvOrgName.text = groupInfo.orgName
|
||||||
|
|
||||||
|
// 时间
|
||||||
|
binding.tvInitTime.text = "求助时间:${groupInfo.initTime}"
|
||||||
|
|
||||||
|
if (isSelected) {
|
||||||
|
// 选中态
|
||||||
|
binding.rootItem.setBackgroundResource(com.xjjk.healthyclients.R.drawable.bg_emergency_item_selected)
|
||||||
|
binding.ivRadio.setImageResource(com.xjjk.healthyclients.R.drawable.ic_emergency_radio_selected)
|
||||||
|
|
||||||
|
binding.tvDeptName.setTextColor(colorPrimary)
|
||||||
|
binding.tvDeptName.setBackgroundResource(com.xjjk.healthyclients.R.drawable.bg_dept_badge_selected)
|
||||||
|
|
||||||
|
binding.tvInitTime.setTextColor(colorPrimary)
|
||||||
|
binding.ivLocation.imageTintList = ColorStateList.valueOf(colorPrimary)
|
||||||
|
binding.ivClock.imageTintList = ColorStateList.valueOf(colorPrimary)
|
||||||
|
} else {
|
||||||
|
// 未选中态
|
||||||
|
binding.rootItem.setBackgroundResource(com.xjjk.healthyclients.R.drawable.bg_emergency_item_unselected)
|
||||||
|
binding.ivRadio.setImageResource(com.xjjk.healthyclients.R.drawable.ic_emergency_radio_unselected)
|
||||||
|
|
||||||
|
binding.tvDeptName.setTextColor(colorGray)
|
||||||
|
binding.tvDeptName.setBackgroundResource(com.xjjk.healthyclients.R.drawable.bg_dept_badge_unselected)
|
||||||
|
|
||||||
|
binding.tvInitTime.setTextColor(colorGray)
|
||||||
|
binding.ivLocation.imageTintList = ColorStateList.valueOf(colorGray)
|
||||||
|
binding.ivClock.imageTintList = ColorStateList.valueOf(colorGray)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package com.xjjk.healthyclients.ui.activity
|
|||||||
import android.graphics.Color
|
import android.graphics.Color
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.View
|
import android.view.View
|
||||||
|
import androidx.core.text.isDigitsOnly
|
||||||
import androidx.lifecycle.Lifecycle
|
import androidx.lifecycle.Lifecycle
|
||||||
import androidx.lifecycle.lifecycleScope
|
import androidx.lifecycle.lifecycleScope
|
||||||
import androidx.lifecycle.repeatOnLifecycle
|
import androidx.lifecycle.repeatOnLifecycle
|
||||||
@@ -40,16 +41,30 @@ class ProposalActivity :
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* 手机号中间4位脱敏
|
||||||
|
*/
|
||||||
|
fun String?.maskPhone(): String {
|
||||||
|
val phone = this ?: return "--"
|
||||||
|
// 判断是否标准11位
|
||||||
|
return if (phone.length == 11) {
|
||||||
|
phone.replaceRange(3, 7, "****")
|
||||||
|
} else {
|
||||||
|
phone
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private fun setProposalInfo(proposalBean: ProposalBean?) {
|
private fun setProposalInfo(proposalBean: ProposalBean?) {
|
||||||
proposalBean?.let {
|
proposalBean?.let {
|
||||||
|
mBinding.llDocumentBuild.visibility = View.VISIBLE
|
||||||
|
mBinding.llMostCare.visibility = View.VISIBLE
|
||||||
// 患者信息
|
// 患者信息
|
||||||
mBinding.tvPatientName.text = it.name
|
mBinding.tvPatientName.text = it.name
|
||||||
mBinding.tvPatientGenderAge.text = formatNullString(it.sexCode) + " · " + it.age + "岁"
|
mBinding.tvPatientGenderAge.text = formatNullString(it.sexCode) + " · " + it.age + "岁"
|
||||||
//mBinding.tvDocumentStatus.text = it.careStatus
|
//mBinding.tvDocumentStatus.text = it.careStatus
|
||||||
mBinding.tvPatientCompany.text = formatNullString(it.workUnit)
|
mBinding.tvPatientCompany.text = formatNullString(it.workUnit)
|
||||||
mBinding.tvIdNumber.text = formatNullString(it.idNo)
|
mBinding.tvIdNumber.text = formatNullString(it.idNo)
|
||||||
mBinding.tvPhone.text = formatNullString(it.phone)
|
mBinding.tvPhone.text = formatNullString(it.phone).maskPhone()
|
||||||
|
|
||||||
// 关爱管理信息
|
// 关爱管理信息
|
||||||
//mBinding.tvLevel.text = it.dataLevel.toString()
|
//mBinding.tvLevel.text = it.dataLevel.toString()
|
||||||
@@ -58,34 +73,46 @@ class ProposalActivity :
|
|||||||
|
|
||||||
|
|
||||||
// 档案与标签
|
// 档案与标签
|
||||||
if (it.flagFat != 1) {
|
if (it.flagFat == 1) {
|
||||||
mBinding.llFatTag.visibility = View.INVISIBLE
|
mBinding.llFatTag.visibility = View.VISIBLE
|
||||||
}
|
}
|
||||||
mBinding.tvWeight.text = formatNullString(it.weight)
|
val weight = formatNullString(it.weight)
|
||||||
|
val formatWeight = weight.toDoubleOrNull()?.let {
|
||||||
|
String.format("%.2f", it)
|
||||||
|
} ?: weight
|
||||||
|
val standardWeight = formatNullString(it.targetWeight)
|
||||||
|
val targetWeight = standardWeight.toDoubleOrNull()?.let {
|
||||||
|
String.format("%.2f", it)
|
||||||
|
} ?: standardWeight
|
||||||
|
mBinding.tvWeight.text = formatWeight
|
||||||
mBinding.tvHeight.text = formatNullString(it.height)
|
mBinding.tvHeight.text = formatNullString(it.height)
|
||||||
mBinding.tvBmi.text = formatNullString(it.bmiCurrent)
|
mBinding.tvBmi.text = formatNullString(it.bmiCurrent)
|
||||||
mBinding.tvStandardWeight.text = formatNullString(it.targetWeight)
|
mBinding.tvStandardWeight.text = targetWeight
|
||||||
|
|
||||||
// 心血管健康
|
// 心血管健康
|
||||||
if (it.hypertension != 1) {
|
if (it.hypertension == 1) {
|
||||||
mBinding.llHighPressureTag.visibility = View.INVISIBLE
|
mBinding.llHighPressureTag.visibility = View.VISIBLE
|
||||||
}
|
}
|
||||||
mBinding.tvSystolicAvg.text = formatNullString(it.systolicPressureAvg)
|
mBinding.tvSystolicAvg.text = formatNullString(it.systolicPressureAvg)
|
||||||
mBinding.tvSystolicTarget.text = formatNullString(it.systolicPressureTarget)
|
mBinding.tvSystolicTarget.text = formatNullString(it.systolicPressureTarget)
|
||||||
mBinding.tvSystolic.text = formatNullString(it.systolicPressureAvg)
|
mBinding.tvSystolic.text = formatNullString(it.systolicPressureCurrent)
|
||||||
|
if (it.systolicPressureTarget?.toDoubleOrNull() !=null && it.systolicPressureCurrent?.toDoubleOrNull() !=null
|
||||||
|
&& it.systolicPressureTarget.toDouble() < it.systolicPressureCurrent.toDouble()
|
||||||
|
) {
|
||||||
|
mBinding.tvSystolic.setTextColor(getColor(R.color.red_f2))
|
||||||
|
}
|
||||||
mBinding.tvDiastolicAvg.text = formatNullString(it.diastolicPressureAvg)
|
mBinding.tvDiastolicAvg.text = formatNullString(it.diastolicPressureAvg)
|
||||||
mBinding.tvDiastolicTarget.text = formatNullString(it.diastolicPressureTarget)
|
mBinding.tvDiastolicTarget.text = formatNullString(it.diastolicPressureTarget)
|
||||||
mBinding.tvDiastolic.text = formatNullString(it.diastolicPressureAvg)
|
mBinding.tvDiastolic.text = formatNullString(it.diastolicPressureCurrent)
|
||||||
|
|
||||||
// 代谢指标
|
// 代谢指标
|
||||||
// 心血管健康
|
// 心血管健康
|
||||||
if (it.diabetes != 1) {
|
if (it.diabetes == 1) {
|
||||||
mBinding.llDiabetesTag.visibility = View.INVISIBLE
|
mBinding.llDiabetesTag.visibility = View.VISIBLE
|
||||||
}
|
}
|
||||||
mBinding.llDiabetesTag.visibility = if (it.diabetes != 0) View.VISIBLE else View.GONE
|
|
||||||
mBinding.tvFbsValue.text = formatNullString(it.glu)
|
mBinding.tvFbsValue.text = formatNullString(it.glu)
|
||||||
mBinding.tvFbsTarget.text = formatNullString(it.bloodSugarTarget)
|
mBinding.tvFbsTarget.text = formatNullString(it.bloodSugarTarget)
|
||||||
mBinding.tvFbsCurrent.text = formatNullString(it.glu)
|
mBinding.tvFbsCurrent.text = formatNullString(it.bloodSugarCurrent)
|
||||||
|
|
||||||
// 血脂四项
|
// 血脂四项
|
||||||
mBinding.tvTcValue.text = it.tc
|
mBinding.tvTcValue.text = it.tc
|
||||||
@@ -109,11 +136,12 @@ class ProposalActivity :
|
|||||||
mBinding.tvHcyCurrent.text = it.homocysteine
|
mBinding.tvHcyCurrent.text = it.homocysteine
|
||||||
|
|
||||||
// 医疗意见与记录
|
// 医疗意见与记录
|
||||||
mBinding.tvCabinOpinion.text = it.cabinOpinion
|
mBinding.tvCabinOpinion.text = it.cabinOpinion ?: "暂无小屋意见"
|
||||||
mBinding.tvCabinTime.text = it.cabinOpinionTime
|
mBinding.tvCabinTime.text = it.cabinOpinionTime
|
||||||
mBinding.tvCabinReporter.text = it.cabinOpinionUserName
|
mBinding.tvCabinReporter.text = it.cabinOpinionUserName
|
||||||
mBinding.tvDoctorTime.text = it.expertOpinionTime
|
mBinding.tvExpertOpinion.text = it.expertOpinion ?: "暂无专家医生意见"
|
||||||
mBinding.tvDoctorReporter.text = it.expertOpinionUserName
|
mBinding.tvExpertOpinionTime.text = it.expertOpinionTime
|
||||||
|
mBinding.tvExpertOpinionUserName.text = it.expertOpinionUserName
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -14,6 +14,11 @@ import com.amap.api.maps.model.CameraPosition
|
|||||||
import com.amap.api.maps.model.LatLng
|
import com.amap.api.maps.model.LatLng
|
||||||
import com.amap.api.maps.model.MarkerOptions
|
import com.amap.api.maps.model.MarkerOptions
|
||||||
import com.amap.api.maps.model.MyLocationStyle
|
import com.amap.api.maps.model.MyLocationStyle
|
||||||
|
import com.amap.api.services.core.LatLonPoint
|
||||||
|
import com.amap.api.services.geocoder.GeocodeResult
|
||||||
|
import com.amap.api.services.geocoder.GeocodeSearch
|
||||||
|
import com.amap.api.services.geocoder.RegeocodeQuery
|
||||||
|
import com.amap.api.services.geocoder.RegeocodeResult
|
||||||
import com.google.gson.Gson
|
import com.google.gson.Gson
|
||||||
import com.permissionx.guolindev.PermissionX
|
import com.permissionx.guolindev.PermissionX
|
||||||
import com.tencent.qcloud.tuicore.util.ToastUtil
|
import com.tencent.qcloud.tuicore.util.ToastUtil
|
||||||
@@ -38,6 +43,7 @@ class SelectLocationActivity : BaseVMBActivity<TestViewModel, ActivitySelectLoca
|
|||||||
var aMap: AMap? = null
|
var aMap: AMap? = null
|
||||||
var mCurrentLat: Double = 0.0
|
var mCurrentLat: Double = 0.0
|
||||||
var mCurrentLon: Double = 0.0
|
var mCurrentLon: Double = 0.0
|
||||||
|
var desc: String = ""
|
||||||
var mPermissionList= arrayListOf(
|
var mPermissionList= arrayListOf(
|
||||||
Manifest.permission.ACCESS_COARSE_LOCATION,
|
Manifest.permission.ACCESS_COARSE_LOCATION,
|
||||||
Manifest.permission.ACCESS_FINE_LOCATION)
|
Manifest.permission.ACCESS_FINE_LOCATION)
|
||||||
@@ -72,6 +78,34 @@ class SelectLocationActivity : BaseVMBActivity<TestViewModel, ActivitySelectLoca
|
|||||||
override fun initData() {
|
override fun initData() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun initGeocoderSearch() {
|
||||||
|
val geocodeSearch = GeocodeSearch(this@SelectLocationActivity)
|
||||||
|
val query = RegeocodeQuery(LatLonPoint(mCurrentLat, mCurrentLon), 200f, GeocodeSearch.AMAP)
|
||||||
|
geocodeSearch.getFromLocationAsyn(query)
|
||||||
|
geocodeSearch.setOnGeocodeSearchListener(object : GeocodeSearch.OnGeocodeSearchListener {
|
||||||
|
override fun onRegeocodeSearched(
|
||||||
|
regeocodeResult: RegeocodeResult?,
|
||||||
|
resultID: Int
|
||||||
|
) {
|
||||||
|
if (regeocodeResult != null) {
|
||||||
|
val regeocodeAddress = regeocodeResult.regeocodeAddress
|
||||||
|
desc = regeocodeAddress.getFormatAddress()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onGeocodeSearched(
|
||||||
|
geocodeResult: GeocodeResult?,
|
||||||
|
resultID: Int
|
||||||
|
) {
|
||||||
|
|
||||||
|
if (geocodeResult != null) {
|
||||||
|
val geocodeAddressList = geocodeResult.geocodeAddressList
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
private fun setUpMap() {
|
private fun setUpMap() {
|
||||||
// 自定义系统定位小蓝点
|
// 自定义系统定位小蓝点
|
||||||
val myLocationStyle = MyLocationStyle()
|
val myLocationStyle = MyLocationStyle()
|
||||||
@@ -91,6 +125,9 @@ class SelectLocationActivity : BaseVMBActivity<TestViewModel, ActivitySelectLoca
|
|||||||
aMap?.setOnMyLocationChangeListener {
|
aMap?.setOnMyLocationChangeListener {
|
||||||
mCurrentLat = it.latitude
|
mCurrentLat = it.latitude
|
||||||
mCurrentLon = it.longitude
|
mCurrentLon = it.longitude
|
||||||
|
|
||||||
|
initGeocoderSearch()
|
||||||
|
|
||||||
val markerOption = MarkerOptions()
|
val markerOption = MarkerOptions()
|
||||||
markerOption.position(LatLng(mCurrentLat, mCurrentLon))
|
markerOption.position(LatLng(mCurrentLat, mCurrentLon))
|
||||||
aMap?.moveCamera(CameraUpdateFactory.newLatLng(LatLng(mCurrentLat, mCurrentLon)))
|
aMap?.moveCamera(CameraUpdateFactory.newLatLng(LatLng(mCurrentLat, mCurrentLon)))
|
||||||
@@ -108,6 +145,8 @@ class SelectLocationActivity : BaseVMBActivity<TestViewModel, ActivitySelectLoca
|
|||||||
marker?.position = cameraPosition.target
|
marker?.position = cameraPosition.target
|
||||||
mCurrentLat = cameraPosition.target.latitude
|
mCurrentLat = cameraPosition.target.latitude
|
||||||
mCurrentLon = cameraPosition.target.longitude
|
mCurrentLon = cameraPosition.target.longitude
|
||||||
|
|
||||||
|
initGeocoderSearch()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -144,6 +183,7 @@ class SelectLocationActivity : BaseVMBActivity<TestViewModel, ActivitySelectLoca
|
|||||||
var locationMessageBean = LocationMessageBean()
|
var locationMessageBean = LocationMessageBean()
|
||||||
locationMessageBean.longitude = mCurrentLon
|
locationMessageBean.longitude = mCurrentLon
|
||||||
locationMessageBean.latitude = mCurrentLat
|
locationMessageBean.latitude = mCurrentLat
|
||||||
|
locationMessageBean.desc = desc
|
||||||
intent.putExtra(ChatLayoutSetting.KEY_CUSTOM_MESSAGE, locationMessageBean.toJson())
|
intent.putExtra(ChatLayoutSetting.KEY_CUSTOM_MESSAGE, locationMessageBean.toJson())
|
||||||
setResult(ChatLayoutSetting.RESULT_CODE_LOCATION, intent)
|
setResult(ChatLayoutSetting.RESULT_CODE_LOCATION, intent)
|
||||||
finish()
|
finish()
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:shape="rectangle">
|
||||||
|
<solid android:color="#1A2EB8B2" />
|
||||||
|
<corners android:radius="4dp" />
|
||||||
|
</shape>
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:shape="rectangle">
|
||||||
|
<solid android:color="#1A77859E" />
|
||||||
|
<corners android:radius="4dp" />
|
||||||
|
</shape>
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:shape="oval">
|
||||||
|
<solid android:color="@color/emergency_close_bg" />
|
||||||
|
</shape>
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:shape="rectangle">
|
||||||
|
<solid android:color="@color/emergency_primary" />
|
||||||
|
<corners android:radius="12dp" />
|
||||||
|
</shape>
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:shape="rectangle">
|
||||||
|
<solid android:color="@android:color/white" />
|
||||||
|
<corners android:radius="12dp" />
|
||||||
|
</shape>
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:shape="rectangle">
|
||||||
|
<solid android:color="@color/emergency_card_selected_bg" />
|
||||||
|
<stroke
|
||||||
|
android:width="1dp"
|
||||||
|
android:color="@color/emergency_card_selected_border" />
|
||||||
|
<corners android:radius="8dp" />
|
||||||
|
</shape>
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:shape="rectangle">
|
||||||
|
<solid android:color="@android:color/white" />
|
||||||
|
<stroke
|
||||||
|
android:width="1dp"
|
||||||
|
android:color="@color/emergency_card_unselected_border" />
|
||||||
|
<corners android:radius="8dp" />
|
||||||
|
</shape>
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="16dp"
|
||||||
|
android:height="16dp"
|
||||||
|
android:viewportWidth="16"
|
||||||
|
android:viewportHeight="16">
|
||||||
|
<path
|
||||||
|
android:fillColor="@android:color/transparent"
|
||||||
|
android:pathData="M8,14C11.31,14 14,11.31 14,8C14,4.69 11.31,2 8,2C4.69,2 2,4.69 2,8C2,11.31 4.69,14 8,14Z"
|
||||||
|
android:strokeWidth="1.2"
|
||||||
|
android:strokeColor="@color/emergency_primary"
|
||||||
|
android:strokeLineCap="round" />
|
||||||
|
<path
|
||||||
|
android:fillColor="@android:color/transparent"
|
||||||
|
android:pathData="M8,5L8,8.5L10.5,10"
|
||||||
|
android:strokeWidth="1.2"
|
||||||
|
android:strokeColor="@color/emergency_primary"
|
||||||
|
android:strokeLineCap="round"
|
||||||
|
android:strokeLineJoin="round" />
|
||||||
|
</vector>
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="14dp"
|
||||||
|
android:height="14dp"
|
||||||
|
android:viewportWidth="14"
|
||||||
|
android:viewportHeight="14">
|
||||||
|
<path
|
||||||
|
android:fillColor="@android:color/transparent"
|
||||||
|
android:pathData="M1,1L13,13M13,1L1,13"
|
||||||
|
android:strokeWidth="1.5"
|
||||||
|
android:strokeColor="@color/emergency_text_gray"
|
||||||
|
android:strokeLineCap="round" />
|
||||||
|
</vector>
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="16dp"
|
||||||
|
android:height="16dp"
|
||||||
|
android:viewportWidth="16"
|
||||||
|
android:viewportHeight="16">
|
||||||
|
<path
|
||||||
|
android:fillColor="@android:color/transparent"
|
||||||
|
android:pathData="M8,14C8,14 14,9.5 14,6C14,2.69 11.31,0 8,0C4.69,0 2,2.69 2,6C2,9.5 8,14 8,14Z"
|
||||||
|
android:strokeWidth="1"
|
||||||
|
android:strokeColor="@color/emergency_primary"
|
||||||
|
android:strokeLineJoin="round" />
|
||||||
|
<path
|
||||||
|
android:fillColor="@color/emergency_primary"
|
||||||
|
android:pathData="M8,8C9.1,8 10,7.1 10,6C10,4.9 9.1,4 8,4C6.9,4 6,4.9 6,6C6,7.1 6.9,8 8,8Z" />
|
||||||
|
</vector>
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item>
|
||||||
|
<shape android:shape="oval">
|
||||||
|
<solid android:color="@color/emergency_primary" />
|
||||||
|
</shape>
|
||||||
|
</item>
|
||||||
|
<item
|
||||||
|
android:top="5dp"
|
||||||
|
android:bottom="5dp"
|
||||||
|
android:left="5dp"
|
||||||
|
android:right="5dp">
|
||||||
|
<shape android:shape="oval">
|
||||||
|
<solid android:color="@android:color/white" />
|
||||||
|
</shape>
|
||||||
|
</item>
|
||||||
|
</layer-list>
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:shape="oval">
|
||||||
|
<stroke
|
||||||
|
android:width="1dp"
|
||||||
|
android:color="@color/emergency_card_unselected_border" />
|
||||||
|
<solid android:color="@android:color/white" />
|
||||||
|
</shape>
|
||||||
@@ -79,7 +79,7 @@
|
|||||||
android:textColor="@color/text_primary_25"
|
android:textColor="@color/text_primary_25"
|
||||||
android:textSize="18sp"
|
android:textSize="18sp"
|
||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
tools:text="艾比拜·牙库甫" />
|
android:text="--" />
|
||||||
|
|
||||||
<View
|
<View
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
@@ -94,7 +94,7 @@
|
|||||||
android:textColor="@color/text_primary_25"
|
android:textColor="@color/text_primary_25"
|
||||||
android:textSize="14sp"
|
android:textSize="14sp"
|
||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
tools:text="男性 · 52岁" />
|
android:text="--"/>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
@@ -110,7 +110,7 @@
|
|||||||
android:textColor="@color/text_primary_25"
|
android:textColor="@color/text_primary_25"
|
||||||
android:textSize="14sp"
|
android:textSize="14sp"
|
||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
tools:text="新疆油田分公司采油一厂" />
|
android:text="--" />
|
||||||
|
|
||||||
<View
|
<View
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
@@ -119,11 +119,13 @@
|
|||||||
|
|
||||||
<!-- 档案已建立 标签 -->
|
<!-- 档案已建立 标签 -->
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
android:id="@+id/ll_document_build"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="24dp"
|
android:layout_height="24dp"
|
||||||
android:layout_marginTop="6dp"
|
android:layout_marginTop="6dp"
|
||||||
android:background="@drawable/bg_teal_tag_round_4"
|
android:background="@drawable/bg_teal_tag_round_4"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
|
android:visibility="invisible"
|
||||||
android:paddingStart="10dp"
|
android:paddingStart="10dp"
|
||||||
android:paddingEnd="10dp">
|
android:paddingEnd="10dp">
|
||||||
|
|
||||||
@@ -175,7 +177,7 @@
|
|||||||
android:gravity="end"
|
android:gravity="end"
|
||||||
android:textColor="@color/text_primary_25"
|
android:textColor="@color/text_primary_25"
|
||||||
android:textSize="13sp"
|
android:textSize="13sp"
|
||||||
tools:text="650202197403151234" />
|
android:text="--" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
@@ -200,7 +202,7 @@
|
|||||||
android:gravity="end"
|
android:gravity="end"
|
||||||
android:textColor="@color/text_primary_25"
|
android:textColor="@color/text_primary_25"
|
||||||
android:textSize="13sp"
|
android:textSize="13sp"
|
||||||
tools:text="157****5522" />
|
android:text="--" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
@@ -249,10 +251,12 @@
|
|||||||
|
|
||||||
<!-- 重点关爱 标签 -->
|
<!-- 重点关爱 标签 -->
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
android:id="@+id/ll_most_care"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="24dp"
|
android:layout_height="24dp"
|
||||||
android:background="@drawable/bg_teal_round_24"
|
android:background="@drawable/bg_teal_round_24"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
|
android:visibility="invisible"
|
||||||
android:paddingStart="10dp"
|
android:paddingStart="10dp"
|
||||||
android:paddingEnd="10dp">
|
android:paddingEnd="10dp">
|
||||||
|
|
||||||
@@ -299,7 +303,7 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:textColor="@color/text_primary_25"
|
android:textColor="@color/text_primary_25"
|
||||||
android:textSize="13sp"
|
android:textSize="13sp"
|
||||||
tools:text="陈沐辰" />
|
android:text="--"/>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<!-- 分隔线 -->
|
<!-- 分隔线 -->
|
||||||
@@ -334,7 +338,8 @@
|
|||||||
android:maxLines="2"
|
android:maxLines="2"
|
||||||
android:singleLine="false"
|
android:singleLine="false"
|
||||||
android:textColor="@color/text_tab_color"
|
android:textColor="@color/text_tab_color"
|
||||||
android:textSize="13sp" />
|
android:textSize="13sp"
|
||||||
|
android:text="--" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
@@ -381,7 +386,8 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:gravity="center_vertical"
|
android:gravity="center_vertical"
|
||||||
android:orientation="horizontal">
|
android:orientation="horizontal"
|
||||||
|
android:visibility="invisible">
|
||||||
|
|
||||||
<View
|
<View
|
||||||
android:layout_width="6dp"
|
android:layout_width="6dp"
|
||||||
@@ -438,7 +444,7 @@
|
|||||||
android:textColor="@color/text_primary_25"
|
android:textColor="@color/text_primary_25"
|
||||||
android:textSize="16sp"
|
android:textSize="16sp"
|
||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
tools:text="68.20" />
|
android:text="--" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
@@ -457,7 +463,7 @@
|
|||||||
android:textColor="#2EB8B2"
|
android:textColor="#2EB8B2"
|
||||||
android:textSize="24sp"
|
android:textSize="24sp"
|
||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
tools:text="2.6" />
|
android:text="--"/>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<!-- 标签行: 06-25 09:30 | 体重较上次减轻 -->
|
<!-- 标签行: 06-25 09:30 | 体重较上次减轻 -->
|
||||||
@@ -507,14 +513,29 @@
|
|||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
<TextView
|
<LinearLayout
|
||||||
android:id="@+id/tv_height"
|
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:textColor="@color/text_primary_25"
|
android:gravity="bottom"
|
||||||
android:textSize="24sp"
|
android:orientation="horizontal">
|
||||||
android:textStyle="bold"
|
|
||||||
tools:text="172cm" />
|
<TextView
|
||||||
|
android:id="@+id/tv_height"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textColor="@color/text_primary_25"
|
||||||
|
android:textSize="24sp"
|
||||||
|
android:textStyle="bold"
|
||||||
|
android:text="--"/>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="2dp"
|
||||||
|
android:text="cm"
|
||||||
|
android:textColor="@color/gray_80"
|
||||||
|
android:textSize="14sp" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
@@ -548,7 +569,7 @@
|
|||||||
android:textColor="@color/text_primary_25"
|
android:textColor="@color/text_primary_25"
|
||||||
android:textSize="22sp"
|
android:textSize="22sp"
|
||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
tools:text="22.4" />
|
android:text="--"/>
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
@@ -600,7 +621,7 @@
|
|||||||
android:textColor="@color/text_primary_25"
|
android:textColor="@color/text_primary_25"
|
||||||
android:textSize="24sp"
|
android:textSize="24sp"
|
||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
tools:text="52.6" />
|
android:text="--"/>
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
@@ -669,7 +690,8 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:gravity="center_vertical"
|
android:gravity="center_vertical"
|
||||||
android:orientation="horizontal">
|
android:orientation="horizontal"
|
||||||
|
android:visibility="invisible">
|
||||||
|
|
||||||
<View
|
<View
|
||||||
android:layout_width="6dp"
|
android:layout_width="6dp"
|
||||||
@@ -817,7 +839,6 @@
|
|||||||
android:layout_weight="1.5"
|
android:layout_weight="1.5"
|
||||||
android:background="@drawable/bg_table_data_cell"
|
android:background="@drawable/bg_table_data_cell"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:textColor="@color/red_f2"
|
|
||||||
android:textSize="12sp"
|
android:textSize="12sp"
|
||||||
tools:text="78mmHg" />
|
tools:text="78mmHg" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
@@ -918,7 +939,8 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:gravity="center_vertical"
|
android:gravity="center_vertical"
|
||||||
android:orientation="horizontal">
|
android:orientation="horizontal"
|
||||||
|
android:visibility="invisible">
|
||||||
|
|
||||||
<View
|
<View
|
||||||
android:layout_width="6dp"
|
android:layout_width="6dp"
|
||||||
@@ -1817,15 +1839,6 @@
|
|||||||
android:background="@drawable/bg_gradient_underline_reverse" />
|
android:background="@drawable/bg_gradient_underline_reverse" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:id="@+id/tv_cabinOpinion"
|
|
||||||
android:layout_marginTop="8dp"
|
|
||||||
android:lineSpacingExtra="4dp"
|
|
||||||
android:textSize="13sp"
|
|
||||||
android:textColor="@color/text_teal_dark"/>
|
|
||||||
|
|
||||||
<!-- 时间和填报人 -->
|
<!-- 时间和填报人 -->
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
@@ -1842,16 +1855,14 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:textColor="#B6B6B6"
|
android:textColor="#B6B6B6"
|
||||||
android:textSize="11sp"
|
android:textSize="11sp"/>
|
||||||
tools:text="填报人:李秀芳(健康管理师)" />
|
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/tv_cabin_time"
|
android:id="@+id/tv_cabin_time"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:textColor="#B6B6B6"
|
android:textColor="#B6B6B6"
|
||||||
android:textSize="11sp"
|
android:textSize="11sp"/>
|
||||||
tools:text="2026-05-15 14:30" />
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
@@ -1871,130 +1882,24 @@
|
|||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@id/ll_medical_advice">
|
app:layout_constraintTop_toBottomOf="@id/ll_medical_advice">
|
||||||
|
|
||||||
<TextView
|
<!--<TextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:background="@drawable/bg_gradient_underline_vertical"
|
android:background="@drawable/bg_gradient_underline_vertical"
|
||||||
android:text="【健康综述】"
|
android:text="【小屋意见】"
|
||||||
android:textColor="@color/text_primary_25"
|
android:textColor="@color/text_primary_25"
|
||||||
android:textSize="14sp"
|
android:textSize="14sp"
|
||||||
android:textStyle="bold" />
|
android:textStyle="bold" />-->
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/tv_cabin_summary"
|
android:id="@+id/tv_cabinOpinion"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="8dp"
|
android:layout_marginTop="8dp"
|
||||||
android:lineSpacingExtra="4dp"
|
android:lineSpacingExtra="4dp"
|
||||||
android:textColor="@color/text_teal_dark"
|
android:textColor="@color/text_teal_dark"
|
||||||
android:textSize="13sp"
|
android:textSize="13sp"
|
||||||
android:text="患者张建国,男,52岁,高血压病史5年,目前血压控制不理想(收缩压持续偏高)。BMI 28.5,属于肥胖。空腹血糖偏高(6.8mmol/L),处于糖尿病前期。血脂三项均超标,甘油三酯明显偏高。血尿酸持续偏高,存在痛风风险。同型半胱氨酸偏高,心血管风险增加。" />
|
android:text="暂无小屋意见。" />
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<!-- 【降控目标】卡片 -->
|
|
||||||
<LinearLayout
|
|
||||||
android:id="@+id/ll_health_target"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginStart="16dp"
|
|
||||||
android:layout_marginTop="12dp"
|
|
||||||
android:layout_marginEnd="16dp"
|
|
||||||
android:background="@drawable/bg_white_round_12"
|
|
||||||
android:orientation="vertical"
|
|
||||||
android:padding="16dp"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintTop_toBottomOf="@id/ll_cabin_summary">
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:background="@drawable/bg_gradient_underline_vertical"
|
|
||||||
android:text="【降控目标】"
|
|
||||||
android:textColor="@color/text_primary_25"
|
|
||||||
android:textSize="14sp"
|
|
||||||
android:textStyle="bold" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/tv_cabin_target"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginTop="8dp"
|
|
||||||
android:lineSpacingExtra="4dp"
|
|
||||||
android:textColor="@color/text_teal_dark"
|
|
||||||
android:textSize="13sp"
|
|
||||||
android:text="1. 血压:收缩压控制在140mmHg以下,舒张压控制在90mmHg以下。\n2. 体重:目标减至75kg,BMI降至25.3。\n3. 血糖:空腹血糖控制在6.1mmol/L以下。\n4. 血脂:LDL-C降至3.4以下,TG降至1.7以下。\n5. 尿酸:控制在420μmol/L以下。" />
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<!-- 【生活干预建议】卡片 -->
|
|
||||||
<LinearLayout
|
|
||||||
android:id="@+id/ll_health_suggest"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginStart="16dp"
|
|
||||||
android:layout_marginTop="12dp"
|
|
||||||
android:layout_marginEnd="16dp"
|
|
||||||
android:background="@drawable/bg_white_round_12"
|
|
||||||
android:orientation="vertical"
|
|
||||||
android:padding="16dp"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintTop_toBottomOf="@id/ll_health_target">
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:background="@drawable/bg_gradient_underline_vertical"
|
|
||||||
android:text="【生活干预建议】"
|
|
||||||
android:textColor="@color/text_primary_25"
|
|
||||||
android:textSize="14sp"
|
|
||||||
android:textStyle="bold" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/tv_doctor_lifestyle"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginTop="8dp"
|
|
||||||
android:lineSpacingExtra="4dp"
|
|
||||||
android:textColor="@color/text_teal_dark"
|
|
||||||
android:textSize="13sp"
|
|
||||||
android:text="1. 饮食:低盐低脂低嘌呤饮食,减少动物内脏和海鲜摄入,每日盐摄入不超过5g。\n2. 运动:每周至少150分钟中等强度有氧运动(快走、游泳),逐步增加运动量。\n3. 戒烟限酒:建议完全戒烟,严格限制酒精摄入。\n4. 体重管理:每月减重1-2kg为宜,避免节食减肥。" />
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<!-- 【服药情况】卡片 -->
|
|
||||||
<LinearLayout
|
|
||||||
android:id="@+id/ll_health_medication"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginStart="16dp"
|
|
||||||
android:layout_marginTop="12dp"
|
|
||||||
android:layout_marginEnd="16dp"
|
|
||||||
android:background="@drawable/bg_white_round_12"
|
|
||||||
android:orientation="vertical"
|
|
||||||
android:padding="16dp"
|
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintTop_toBottomOf="@id/ll_health_suggest">
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:background="@drawable/bg_gradient_underline_vertical"
|
|
||||||
android:text="【服药情况】"
|
|
||||||
android:textColor="@color/text_primary_25"
|
|
||||||
android:textSize="14sp"
|
|
||||||
android:textStyle="bold" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/tv_doctor_medication"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginTop="8dp"
|
|
||||||
android:lineSpacingExtra="4dp"
|
|
||||||
android:textColor="@color/text_teal_dark"
|
|
||||||
android:textSize="13sp"
|
|
||||||
android:text="1.氨氯地平片 5mg 每日一次(降压)\n2. 阿托伐他汀钙片 20mg 每晚一次(调脂)\n3. 别嘌醇片 100mg 每日一次(降尿酸)\n4. 叶酸片 0.8mg 每日一次(降低同型半胱氨酸)\n5. 建议3个月后复查全套生化指标,评估治疗效果" />
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
@@ -2009,41 +1914,6 @@
|
|||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@id/ll_medical_advice" />
|
app:layout_constraintTop_toBottomOf="@id/ll_medical_advice" />
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:layout_width="16dp"
|
|
||||||
android:layout_height="0dp"
|
|
||||||
android:layout_marginTop="-20dp"
|
|
||||||
android:layout_marginEnd="36dp"
|
|
||||||
android:layout_marginBottom="-20dp"
|
|
||||||
android:scaleType="fitXY"
|
|
||||||
android:src="@drawable/ic_link"
|
|
||||||
app:layout_constraintBottom_toTopOf="@id/ll_health_target"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintTop_toBottomOf="@id/ll_cabin_summary" />
|
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:layout_width="16dp"
|
|
||||||
android:layout_height="0dp"
|
|
||||||
android:layout_marginTop="-20dp"
|
|
||||||
android:layout_marginEnd="36dp"
|
|
||||||
android:layout_marginBottom="-20dp"
|
|
||||||
android:scaleType="fitXY"
|
|
||||||
android:src="@drawable/ic_link"
|
|
||||||
app:layout_constraintBottom_toTopOf="@id/ll_health_suggest"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintTop_toBottomOf="@id/ll_health_target" />
|
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:layout_width="16dp"
|
|
||||||
android:layout_height="0dp"
|
|
||||||
android:layout_marginTop="-20dp"
|
|
||||||
android:layout_marginEnd="36dp"
|
|
||||||
android:layout_marginBottom="-20dp"
|
|
||||||
android:scaleType="fitXY"
|
|
||||||
android:src="@drawable/ic_link"
|
|
||||||
app:layout_constraintBottom_toTopOf="@id/ll_health_medication"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintTop_toBottomOf="@id/ll_health_suggest" />
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
<!-- ========== 专家医生意见 ========== -->
|
<!-- ========== 专家医生意见 ========== -->
|
||||||
@@ -2108,21 +1978,19 @@
|
|||||||
android:paddingEnd="16dp">
|
android:paddingEnd="16dp">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/tv_doctor_reporter"
|
android:id="@+id/tv_expertOpinionUserName"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:textColor="#B6B6B6"
|
android:textColor="#B6B6B6"
|
||||||
android:textSize="11sp"
|
android:textSize="11sp" />
|
||||||
android:text="填报人:陈明远(主任医师)" />
|
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/tv_doctor_time"
|
android:id="@+id/tv_expertOpinionTime"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:textColor="#B6B6B6"
|
android:textColor="#B6B6B6"
|
||||||
android:textSize="11sp"
|
android:textSize="11sp" />
|
||||||
android:text="2026-05-15 14:30" />
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
@@ -2141,122 +2009,26 @@
|
|||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@id/ll_doctor_opinion">
|
app:layout_constraintTop_toBottomOf="@id/ll_doctor_opinion">
|
||||||
|
|
||||||
<TextView
|
<!--<TextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:background="@drawable/bg_gradient_underline_vertical"
|
android:background="@drawable/bg_gradient_underline_vertical"
|
||||||
android:text="【综合评估】"
|
android:text="【专家医生意见】"
|
||||||
android:textColor="@color/text_primary_25"
|
android:textColor="@color/text_primary_25"
|
||||||
android:textSize="14sp"
|
android:textSize="14sp"
|
||||||
android:textStyle="bold" />
|
android:textStyle="bold" />-->
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/tv_cabin_assessment"
|
android:id="@+id/tv_expertOpinion"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="8dp"
|
android:layout_marginTop="8dp"
|
||||||
android:lineSpacingExtra="4dp"
|
android:lineSpacingExtra="4dp"
|
||||||
android:textColor="@color/text_teal_dark"
|
android:textColor="@color/text_teal_dark"
|
||||||
android:textSize="13sp"
|
android:textSize="13sp"
|
||||||
android:text="患者为代谢综合征高危人群,同时合并高血压、肥胖、高尿酸血症、高同型半胱氨酸血症,心血管事件风险较高。目前空腹血糖6.8mmol/L,建议完善口服葡萄糖耐量试验(OGTT)以明确是否存在糖耐量异常。" />
|
android:text="暂无专家医生意见。" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
||||||
<!-- 【诊疗建议】卡片 -->
|
|
||||||
<LinearLayout
|
|
||||||
android:id="@+id/ll_doctor_advice"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginStart="16dp"
|
|
||||||
android:layout_marginTop="12dp"
|
|
||||||
android:layout_marginEnd="16dp"
|
|
||||||
android:background="@drawable/bg_white_round_12"
|
|
||||||
android:orientation="vertical"
|
|
||||||
android:padding="16dp"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintTop_toBottomOf="@id/ll_doctor_assessment">
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:background="@drawable/bg_gradient_underline_vertical"
|
|
||||||
android:text="【诊疗建议】"
|
|
||||||
android:textColor="@color/text_primary_25"
|
|
||||||
android:textSize="14sp"
|
|
||||||
android:textStyle="bold" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/tv_doctor_diagnosis"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginTop="8dp"
|
|
||||||
android:lineSpacingExtra="4dp"
|
|
||||||
android:textColor="@color/text_teal_dark"
|
|
||||||
android:textSize="13sp"
|
|
||||||
android:text="1. 降压方案调整:目前氨氯地平单药控制欠佳,建议联合缬沙坦80mg每日一次,两药联合降压,目标血压130/85mmHg\n2. 调脂治疗:甘油三酯明显偏高(2.9mmol/L),在阿托伐他汀基础上加用非诺贝特200mg每日一次,注意监测肝功能\n3. 高尿酸:继续别嘌醇治疗,建议加用碳酸氢钠片碱化尿液,多饮水(每日>2000ml)\n4. 同型半胱氨酸:继续叶酸补充,建议加用维生素B6和B12联合治疗" />
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<!-- 【注意事项】卡片 -->
|
|
||||||
<LinearLayout
|
|
||||||
android:id="@+id/ll_doctor_notice"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginStart="16dp"
|
|
||||||
android:layout_marginTop="12dp"
|
|
||||||
android:layout_marginEnd="16dp"
|
|
||||||
android:background="@drawable/bg_white_round_12"
|
|
||||||
android:orientation="vertical"
|
|
||||||
android:padding="16dp"
|
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintTop_toBottomOf="@id/ll_doctor_advice">
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:background="@drawable/bg_gradient_underline_vertical"
|
|
||||||
android:text="【注意事项】"
|
|
||||||
android:textColor="@color/text_primary_25"
|
|
||||||
android:textSize="14sp"
|
|
||||||
android:textStyle="bold" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/tv_doctor_notice"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginTop="8dp"
|
|
||||||
android:lineSpacingExtra="4dp"
|
|
||||||
android:textColor="@color/text_teal_dark"
|
|
||||||
android:textSize="13sp"
|
|
||||||
android:text="患者需高度重视生活方式改善,这是所有药物治疗的基础。建议定期(每月一次)到健康小屋随访,监测血压和体重变化。" />
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:layout_width="16dp"
|
|
||||||
android:layout_height="0dp"
|
|
||||||
android:layout_marginTop="-20dp"
|
|
||||||
android:layout_marginEnd="36dp"
|
|
||||||
android:layout_marginBottom="-20dp"
|
|
||||||
android:scaleType="fitXY"
|
|
||||||
android:src="@drawable/ic_link"
|
|
||||||
app:layout_constraintBottom_toTopOf="@id/ll_doctor_notice"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintTop_toBottomOf="@id/ll_doctor_advice" />
|
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:layout_width="16dp"
|
|
||||||
android:layout_height="0dp"
|
|
||||||
android:layout_marginTop="-20dp"
|
|
||||||
android:layout_marginEnd="36dp"
|
|
||||||
android:layout_marginBottom="-20dp"
|
|
||||||
android:scaleType="fitXY"
|
|
||||||
android:src="@drawable/ic_link"
|
|
||||||
app:layout_constraintBottom_toTopOf="@id/ll_doctor_advice"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintTop_toBottomOf="@id/ll_doctor_assessment" />
|
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:layout_width="16dp"
|
android:layout_width="16dp"
|
||||||
android:layout_height="0dp"
|
android:layout_height="0dp"
|
||||||
|
|||||||
@@ -2,46 +2,95 @@
|
|||||||
<layout xmlns:android="http://schemas.android.com/apk/res/android"
|
<layout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:tools="http://schemas.android.com/tools">
|
xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
|
||||||
<LinearLayout
|
<!-- 全屏半透明背景层,居中显示白色卡片 -->
|
||||||
|
<FrameLayout
|
||||||
|
android:id="@+id/fl_root"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="match_parent"
|
||||||
android:orientation="vertical"
|
android:clickable="true"
|
||||||
android:background="@drawable/rectangle_top_round_corner20_white">
|
android:focusable="true"
|
||||||
|
android:background="@android:color/transparent">
|
||||||
|
|
||||||
<TextView
|
<LinearLayout
|
||||||
android:id="@+id/tv_title"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_gravity="center_horizontal"
|
|
||||||
android:layout_marginTop="@dimen/dp_20"
|
|
||||||
android:text="请选择应急就医对话"
|
|
||||||
android:textColor="@color/text_black_33"
|
|
||||||
android:textSize="@dimen/txt16"
|
|
||||||
android:textStyle="bold" />
|
|
||||||
|
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
|
||||||
android:id="@+id/rv_group_list"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="@dimen/dp_18"
|
android:layout_marginHorizontal="20dp"
|
||||||
android:maxHeight="@dimen/dp_300"
|
android:layout_gravity="center"
|
||||||
tools:listitem="@layout/item_group_info" />
|
android:orientation="vertical"
|
||||||
|
android:background="@drawable/bg_emergency_dialog_card"
|
||||||
|
android:paddingBottom="16dp">
|
||||||
|
|
||||||
<View
|
<!-- 标题栏 -->
|
||||||
android:layout_width="match_parent"
|
<FrameLayout
|
||||||
android:layout_height="@dimen/dp_0_5"
|
android:layout_width="match_parent"
|
||||||
android:background="@color/theme_color" />
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingStart="16dp"
|
||||||
|
android:paddingEnd="16dp"
|
||||||
|
android:paddingTop="16dp"
|
||||||
|
android:paddingBottom="12dp">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/tv_cancel"
|
android:id="@+id/tv_title"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:gravity="center"
|
android:layout_gravity="center"
|
||||||
android:paddingVertical="@dimen/dp_20"
|
android:text="请选择正在应急的工单"
|
||||||
android:text="取消"
|
android:textColor="@color/emergency_text_dark"
|
||||||
android:textColor="@color/text_black_66"
|
android:textSize="18sp"
|
||||||
android:textSize="@dimen/txt14"
|
android:textStyle="bold" />
|
||||||
android:background="?attr/selectableItemBackground" />
|
|
||||||
|
|
||||||
</LinearLayout>
|
<ImageView
|
||||||
|
android:id="@+id/iv_close"
|
||||||
|
android:layout_width="24dp"
|
||||||
|
android:layout_height="24dp"
|
||||||
|
android:layout_gravity="end|center_vertical"
|
||||||
|
android:src="@drawable/ic_emergency_close"
|
||||||
|
android:background="@drawable/bg_emergency_close_btn"
|
||||||
|
android:padding="5dp"
|
||||||
|
android:contentDescription="关闭" />
|
||||||
|
</FrameLayout>
|
||||||
|
|
||||||
|
<!-- 顶部分割线 -->
|
||||||
|
<View
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="1dp"
|
||||||
|
android:background="@color/emergency_divider" />
|
||||||
|
|
||||||
|
<!-- 工单列表 -->
|
||||||
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
android:id="@+id/rv_group_list"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingHorizontal="16dp"
|
||||||
|
android:paddingTop="12dp"
|
||||||
|
android:paddingBottom="4dp"
|
||||||
|
android:maxHeight="420dp"
|
||||||
|
android:clipToPadding="false"
|
||||||
|
android:scrollbars="none"
|
||||||
|
tools:listitem="@layout/item_group_info" />
|
||||||
|
|
||||||
|
<!-- 底部分割线 -->
|
||||||
|
<View
|
||||||
|
android:id="@+id/view_bottom_divider"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="1dp"
|
||||||
|
android:background="@color/emergency_divider" />
|
||||||
|
|
||||||
|
<!-- 确认选择按钮 -->
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_confirm"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="44dp"
|
||||||
|
android:layout_marginStart="16dp"
|
||||||
|
android:layout_marginEnd="16dp"
|
||||||
|
android:layout_marginTop="16dp"
|
||||||
|
android:gravity="center"
|
||||||
|
android:text="确认选择"
|
||||||
|
android:textColor="@android:color/white"
|
||||||
|
android:textSize="18sp"
|
||||||
|
android:textStyle="bold"
|
||||||
|
android:background="@drawable/bg_emergency_confirm_btn" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
</FrameLayout>
|
||||||
</layout>
|
</layout>
|
||||||
|
|||||||
@@ -3,47 +3,120 @@
|
|||||||
xmlns:tools="http://schemas.android.com/tools">
|
xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
android:id="@+id/root_item"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="horizontal"
|
android:orientation="vertical"
|
||||||
android:paddingHorizontal="@dimen/dp_16"
|
android:paddingStart="16dp"
|
||||||
android:paddingVertical="@dimen/dp_16"
|
android:paddingEnd="16dp"
|
||||||
android:gravity="center_vertical"
|
android:paddingTop="16dp"
|
||||||
android:background="?attr/selectableItemBackground">
|
android:paddingBottom="14dp"
|
||||||
|
android:background="@drawable/bg_emergency_item_unselected">
|
||||||
|
|
||||||
<TextView
|
<!-- 顶部:姓名 + 选择圆圈 -->
|
||||||
android:id="@+id/tv_user_name"
|
<LinearLayout
|
||||||
android:layout_width="0dp"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="2"
|
android:orientation="horizontal"
|
||||||
android:gravity="center"
|
android:gravity="center_vertical">
|
||||||
android:textColor="@color/text_black_33"
|
|
||||||
android:textSize="@dimen/txt14"
|
<TextView
|
||||||
|
android:id="@+id/tv_user_name"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:textColor="@color/emergency_text_dark"
|
||||||
|
android:textSize="15sp"
|
||||||
|
android:textStyle="bold"
|
||||||
|
android:ellipsize="end"
|
||||||
|
android:maxLines="1"
|
||||||
|
tools:text="艾尼瓦尔·吐尔逊" />
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/iv_radio"
|
||||||
|
android:layout_width="18dp"
|
||||||
|
android:layout_height="18dp"
|
||||||
|
android:layout_marginStart="12dp"
|
||||||
|
android:src="@drawable/ic_emergency_radio_unselected" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<!-- 部门标签 -->
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_dept_name"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="6dp"
|
||||||
|
android:paddingHorizontal="8dp"
|
||||||
|
android:paddingVertical="2dp"
|
||||||
|
android:textColor="@color/emergency_text_gray"
|
||||||
|
android:textSize="11sp"
|
||||||
|
android:textStyle="bold"
|
||||||
android:ellipsize="end"
|
android:ellipsize="end"
|
||||||
android:maxLines="1"
|
android:maxLines="1"
|
||||||
tools:text="张三" />
|
android:background="@drawable/bg_dept_badge_unselected"
|
||||||
|
tools:text="员工健康事务部" />
|
||||||
|
|
||||||
<TextView
|
<!-- 内部分割线 -->
|
||||||
android:id="@+id/tv_user_sex"
|
<View
|
||||||
android:layout_width="0dp"
|
android:id="@+id/view_divider"
|
||||||
android:layout_height="wrap_content"
|
android:layout_width="match_parent"
|
||||||
android:gravity="center"
|
android:layout_height="1dp"
|
||||||
android:layout_weight="1"
|
android:layout_marginTop="10dp"
|
||||||
android:layout_marginHorizontal="@dimen/dp_12"
|
android:background="@color/emergency_divider" />
|
||||||
android:textColor="@color/text_black_66"
|
|
||||||
android:textSize="@dimen/txt13"
|
|
||||||
tools:text="男" />
|
|
||||||
|
|
||||||
<TextView
|
<!-- 地址行 -->
|
||||||
android:id="@+id/tv_org_name"
|
<LinearLayout
|
||||||
android:layout_width="0dp"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="5"
|
android:layout_marginTop="10dp"
|
||||||
android:textColor="@color/text_black_99"
|
android:orientation="horizontal"
|
||||||
android:textSize="@dimen/txt13"
|
android:gravity="center_vertical">
|
||||||
android:maxLines="1"
|
|
||||||
android:ellipsize="end"
|
<ImageView
|
||||||
tools:text="某某科技有限公司" />
|
android:id="@+id/iv_location"
|
||||||
|
android:layout_width="16dp"
|
||||||
|
android:layout_height="16dp"
|
||||||
|
android:src="@drawable/ic_emergency_location" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_org_name"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:layout_marginStart="8dp"
|
||||||
|
android:textColor="@color/emergency_text_body"
|
||||||
|
android:textSize="13sp"
|
||||||
|
android:ellipsize="end"
|
||||||
|
android:maxLines="2"
|
||||||
|
tools:text="监管中心(石油天然气克拉玛依工程质量监督站)" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<!-- 时间行 -->
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="8dp"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:gravity="center_vertical">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/iv_clock"
|
||||||
|
android:layout_width="16dp"
|
||||||
|
android:layout_height="16dp"
|
||||||
|
android:src="@drawable/ic_emergency_clock" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_init_time"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:layout_marginStart="8dp"
|
||||||
|
android:textColor="@color/emergency_text_gray"
|
||||||
|
android:textSize="13sp"
|
||||||
|
android:ellipsize="end"
|
||||||
|
android:maxLines="1"
|
||||||
|
tools:text="求助时间:2026-07-22 16:24:32" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</layout>
|
</layout>
|
||||||
|
|||||||
@@ -132,6 +132,18 @@
|
|||||||
<color name="text_orange_10">#F36510</color>
|
<color name="text_orange_10">#F36510</color>
|
||||||
<color name="text_blue_BE">#21BEBE</color>
|
<color name="text_blue_BE">#21BEBE</color>
|
||||||
<color name="text_blue_F0">#cbebf0</color>
|
<color name="text_blue_F0">#cbebf0</color>
|
||||||
|
|
||||||
|
<!-- 应急工单选择 Dialog 颜色(Figma) -->
|
||||||
|
<color name="emergency_card_selected_bg">#0F2EB8B2</color>
|
||||||
|
<color name="emergency_card_selected_border">#802EB8B2</color>
|
||||||
|
<color name="emergency_card_unselected_border">#E6E6EA</color>
|
||||||
|
<color name="emergency_dialog_bg">#F5F7FB</color>
|
||||||
|
<color name="emergency_divider">#EAECFA</color>
|
||||||
|
<color name="emergency_text_dark">#252535</color>
|
||||||
|
<color name="emergency_text_body">#394356</color>
|
||||||
|
<color name="emergency_text_gray">#77859E</color>
|
||||||
|
<color name="emergency_close_bg">#F1F5F9</color>
|
||||||
|
<color name="emergency_primary">#2EB8B2</color>
|
||||||
<color name="text_black_60">#606060</color>
|
<color name="text_black_60">#606060</color>
|
||||||
<color name="text_tab_color">#77849E</color>
|
<color name="text_tab_color">#77849E</color>
|
||||||
|
|
||||||
|
|||||||
@@ -39,6 +39,16 @@
|
|||||||
<item name="android:backgroundDimAmount">0.5</item>
|
<item name="android:backgroundDimAmount">0.5</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
<!-- 应急工单选择Dialog:全屏透明无遮罩 -->
|
||||||
|
<style name="EmergencyDialogTheme" parent="@android:style/Theme.Dialog">
|
||||||
|
<item name="android:windowFrame">@null</item>
|
||||||
|
<item name="android:windowIsFloating">true</item>
|
||||||
|
<item name="android:windowIsTranslucent">true</item>
|
||||||
|
<item name="android:windowNoTitle">true</item>
|
||||||
|
<item name="android:windowBackground">@android:color/transparent</item>
|
||||||
|
<item name="android:backgroundDimEnabled">false</item>
|
||||||
|
</style>
|
||||||
|
|
||||||
<style name="main_menu_animStyle">
|
<style name="main_menu_animStyle">
|
||||||
<item name="android:windowEnterAnimation">@anim/dialog_in_anim</item>
|
<item name="android:windowEnterAnimation">@anim/dialog_in_anim</item>
|
||||||
<item name="android:windowExitAnimation">@anim/dialog_out_anim</item>
|
<item name="android:windowExitAnimation">@anim/dialog_out_anim</item>
|
||||||
|
|||||||
Reference in New Issue
Block a user