From 41fadb7b750b24901224c48488c55fe2da231856 Mon Sep 17 00:00:00 2001 From: zhangxiao <1441011491@qq.com> Date: Wed, 22 Jul 2026 17:14:44 +0800 Subject: [PATCH] =?UTF-8?q?feat(chat):=20=E6=B7=BB=E5=8A=A0=E7=BE=A4?= =?UTF-8?q?=E6=88=90=E5=91=98=E8=81=8C=E4=BD=8D=E6=98=BE=E7=A4=BA=E5=92=8C?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 AddMemberActivity 中为 ExpertBean 和 EmployeeBean 添加职位获取方法 - 扩展 AddMemberAdapter 以显示成员职位信息 - 添加 ExpertBean 的 post_dictText 字段用于职位文本显示 - 更新群组聊天界面布局以显示成员职位 - 添加更新群成员按钮和相关功能实现 - 优化群组提示监听器的时序问题处理 - 修改提案页面布局中的占位文本为实际数据绑定 - 添加应急工单对话框的新样式和相关资源文件 --- .../xjjk/healthyclients/bean/home/HomeBean.kt | 17 +- .../fragment/EmergencyFragment.kt | 79 ++-- .../fragment/adapter/GroupInfoAdapter.kt | 107 +++++- .../ui/activity/ProposalActivity.kt | 60 ++- .../ui/activity/SelectLocationActivity.kt | 40 ++ .../res/drawable/bg_dept_badge_selected.xml | 5 + .../res/drawable/bg_dept_badge_unselected.xml | 5 + .../res/drawable/bg_emergency_close_btn.xml | 4 + .../res/drawable/bg_emergency_confirm_btn.xml | 5 + .../res/drawable/bg_emergency_dialog_card.xml | 5 + .../drawable/bg_emergency_item_selected.xml | 8 + .../drawable/bg_emergency_item_unselected.xml | 8 + .../main/res/drawable/ic_emergency_clock.xml | 19 + .../main/res/drawable/ic_emergency_close.xml | 12 + .../res/drawable/ic_emergency_location.xml | 15 + .../drawable/ic_emergency_radio_selected.xml | 16 + .../ic_emergency_radio_unselected.xml | 7 + app/src/main/res/layout/activity_proposal.xml | 346 +++--------------- .../res/layout/dialog_group_info_list.xml | 119 ++++-- app/src/main/res/layout/item_group_info.xml | 137 +++++-- app/src/main/res/values/colors.xml | 12 + app/src/main/res/values/style.xml | 10 + 22 files changed, 619 insertions(+), 417 deletions(-) create mode 100644 app/src/main/res/drawable/bg_dept_badge_selected.xml create mode 100644 app/src/main/res/drawable/bg_dept_badge_unselected.xml create mode 100644 app/src/main/res/drawable/bg_emergency_close_btn.xml create mode 100644 app/src/main/res/drawable/bg_emergency_confirm_btn.xml create mode 100644 app/src/main/res/drawable/bg_emergency_dialog_card.xml create mode 100644 app/src/main/res/drawable/bg_emergency_item_selected.xml create mode 100644 app/src/main/res/drawable/bg_emergency_item_unselected.xml create mode 100644 app/src/main/res/drawable/ic_emergency_clock.xml create mode 100644 app/src/main/res/drawable/ic_emergency_close.xml create mode 100644 app/src/main/res/drawable/ic_emergency_location.xml create mode 100644 app/src/main/res/drawable/ic_emergency_radio_selected.xml create mode 100644 app/src/main/res/drawable/ic_emergency_radio_unselected.xml diff --git a/app/src/main/java/com/xjjk/healthyclients/bean/home/HomeBean.kt b/app/src/main/java/com/xjjk/healthyclients/bean/home/HomeBean.kt index 010837f..aedb32c 100644 --- a/app/src/main/java/com/xjjk/healthyclients/bean/home/HomeBean.kt +++ b/app/src/main/java/com/xjjk/healthyclients/bean/home/HomeBean.kt @@ -85,13 +85,16 @@ data class ProposalBean( val bodyFatPercentNew: String, val weightRiskType: String, val hypertension: Int, - val systolicPressureAvg: String, - val systolicPressureTarget: String, - val diastolicPressureAvg: String, - val diastolicPressureTarget: String, + val systolicPressureAvg: String?, + val systolicPressureTarget: String?, + val systolicPressureCurrent: String?, + val diastolicPressureAvg: String?, + val diastolicPressureTarget: String?, + val diastolicPressureCurrent: String?, val diabetes: Int, val glu: String, - val bloodSugarTarget: String, + val bloodSugarTarget: String?, + val bloodSugarCurrent: String?, val ldl: String, val ldlTarget: String, val tc: String, @@ -118,10 +121,10 @@ data class ProposalBean( val sportGuideResponse: String, val lifeManage: String, val lifeManageResponse: String, - val cabinOpinion: String, + val cabinOpinion: String?, val cabinOpinionTime: String, val cabinOpinionUserName: String, - val expertOpinion: String, + val expertOpinion: String?, val expertOpinionTime: String, val expertOpinionUserName: String ) \ No newline at end of file diff --git a/app/src/main/java/com/xjjk/healthyclients/fragment/EmergencyFragment.kt b/app/src/main/java/com/xjjk/healthyclients/fragment/EmergencyFragment.kt index b219ddf..9282b4a 100644 --- a/app/src/main/java/com/xjjk/healthyclients/fragment/EmergencyFragment.kt +++ b/app/src/main/java/com/xjjk/healthyclients/fragment/EmergencyFragment.kt @@ -5,12 +5,13 @@ import android.app.Dialog import android.content.Intent import android.graphics.BitmapFactory import android.graphics.Color +import android.graphics.Rect +import android.graphics.drawable.ColorDrawable import android.net.Uri import android.os.Build import android.os.Bundle import android.text.TextUtils import android.util.Log -import android.view.Gravity import android.view.View import android.view.WindowManager 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.TUIUtils import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView import com.tencent.qcloud.tuicore.util.ToastUtil import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.async @@ -205,7 +207,7 @@ class EmergencyFragment : ParamedicOperateHelper.getInstance().setListener(paramedicOperateListener) mViewModel.isLiaisonUser { result -> - if (result) { + if (!result) { mBinding.fragmentEmergencyParamedic.visibility = View.GONE } } @@ -415,17 +417,15 @@ class EmergencyFragment : if (result.records.isNullOrEmpty()) { ToastUtil.toastLongMessage("暂无参与的应急就医工单") } else if(result.records.size == 1){ - showChatListDialog(result.records,onChatSelected = {groupInfo -> - mViewModel.getActualGroupMemberList(groupInfo.sessionId, successCall = {groupMemberBeans-> - IMInputActionSettingUtils.createEmergencySetting() - activity?.startGroupChat( - groupInfo.sessionId, - getString(R.string.title_paramedic_group), - false, - groupMemberBeans.map { it1 -> it1.userId }.toList() as ArrayList?, - workBean = WorkBean(groupInfo.orderId, TUIUtils.WORK_TYPE_EMERGENCY) - ) - }) + mViewModel.getActualGroupMemberList(result.records[0].sessionId, successCall = {groupMemberBeans-> + IMInputActionSettingUtils.createEmergencySetting() + activity?.startGroupChat( + result.records[0].sessionId, + getString(R.string.title_paramedic_group), + false, + groupMemberBeans.map { it1 -> it1.userId }.toList() as ArrayList?, + workBean = WorkBean(result.records[0].orderId, TUIUtils.WORK_TYPE_EMERGENCY) + ) }) }else{ showChatListDialog(result.records,onChatSelected = {groupInfo -> @@ -478,34 +478,67 @@ class EmergencyFragment : } /** - * 展示急救订单列表Dialog,供用户选择历史订单继续聊天 + * 展示急救工单选择Dialog(Figma设计稿) */ private fun showChatListDialog( records: List, onChatSelected: (GroupInfo) -> Unit ) { 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) - binding.rvGroupList.layoutManager = LinearLayoutManager(ctx) - binding.rvGroupList.adapter = GroupInfoAdapter(records) { groupInfo -> - onChatSelected(groupInfo) - dialog.dismiss() + val adapter = GroupInfoAdapter(records) { selectedPos -> + // 选中变化时更新确认按钮状态 + val hasSelection = selectedPos >= 0 + 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.setCanceledOnTouchOutside(true) dialog.setCancelable(true) dialog.window?.let { window -> - window.setGravity(Gravity.BOTTOM) - window.setWindowAnimations(com.xjjk.healthyclients.R.style.main_menu_animStyle) + window.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) + window.decorView.setBackgroundColor(Color.TRANSPARENT) window.setLayout( WindowManager.LayoutParams.MATCH_PARENT, - WindowManager.LayoutParams.WRAP_CONTENT + WindowManager.LayoutParams.MATCH_PARENT ) } dialog.show() diff --git a/app/src/main/java/com/xjjk/healthyclients/fragment/adapter/GroupInfoAdapter.kt b/app/src/main/java/com/xjjk/healthyclients/fragment/adapter/GroupInfoAdapter.kt index f870731..68c03f3 100644 --- a/app/src/main/java/com/xjjk/healthyclients/fragment/adapter/GroupInfoAdapter.kt +++ b/app/src/main/java/com/xjjk/healthyclients/fragment/adapter/GroupInfoAdapter.kt @@ -1,45 +1,118 @@ package com.xjjk.healthyclients.fragment.adapter +import android.content.res.ColorStateList +import android.graphics.Color import android.view.LayoutInflater import android.view.ViewGroup +import androidx.core.content.ContextCompat import androidx.recyclerview.widget.RecyclerView import com.xjjk.healthyclients.bean.emergency.GroupInfo import com.xjjk.healthyclients.databinding.ItemGroupInfoBinding /** - * 急救订单列表适配器 + * 急救工单选择适配器,支持单选 */ class GroupInfoAdapter( private val items: List, - private val onItemClick: (GroupInfo) -> Unit + private val onSelectionChanged: (Int) -> Unit ) : RecyclerView.Adapter() { - inner class ViewHolder(private val binding: ItemGroupInfoBinding) : - RecyclerView.ViewHolder(binding.root) { + /** 当前选中位置,-1 表示无选中 */ + var selectedPosition = -1 + private set - fun bind(groupInfo: GroupInfo) { - binding.tvUserName.text = groupInfo.salvageUserName - val sex = when (groupInfo.salvageUserSex) { - "1" -> "女" - "2" -> "男" - else -> "--" - } - binding.tvUserSex.text = sex - binding.tvOrgName.text = groupInfo.orgName - binding.root.setOnClickListener { onItemClick(groupInfo) } - } - } + /** 获取当前选中的工单 */ + val selectedItem: GroupInfo? + get() = if (selectedPosition in items.indices) items[selectedPosition] else null + + /** 选中主色 */ + private var colorPrimary = 0 + /** 未选中灰色 */ + private var colorGray = 0 + private var colorDark = 0 + private var colorBody = 0 override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { val binding = ItemGroupInfoBinding.inflate( 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) } override fun onBindViewHolder(holder: ViewHolder, position: Int) { - holder.bind(items[position]) + holder.bind(items[position], position == selectedPosition) } 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) + } + } + } } diff --git a/app/src/main/java/com/xjjk/healthyclients/ui/activity/ProposalActivity.kt b/app/src/main/java/com/xjjk/healthyclients/ui/activity/ProposalActivity.kt index 004379e..f2a3c2b 100644 --- a/app/src/main/java/com/xjjk/healthyclients/ui/activity/ProposalActivity.kt +++ b/app/src/main/java/com/xjjk/healthyclients/ui/activity/ProposalActivity.kt @@ -3,6 +3,7 @@ package com.xjjk.healthyclients.ui.activity import android.graphics.Color import android.os.Bundle import android.view.View +import androidx.core.text.isDigitsOnly import androidx.lifecycle.Lifecycle import androidx.lifecycle.lifecycleScope 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?) { proposalBean?.let { + mBinding.llDocumentBuild.visibility = View.VISIBLE + mBinding.llMostCare.visibility = View.VISIBLE // 患者信息 mBinding.tvPatientName.text = it.name mBinding.tvPatientGenderAge.text = formatNullString(it.sexCode) + " · " + it.age + "岁" //mBinding.tvDocumentStatus.text = it.careStatus mBinding.tvPatientCompany.text = formatNullString(it.workUnit) 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() @@ -58,34 +73,46 @@ class ProposalActivity : // 档案与标签 - if (it.flagFat != 1) { - mBinding.llFatTag.visibility = View.INVISIBLE + if (it.flagFat == 1) { + 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.tvBmi.text = formatNullString(it.bmiCurrent) - mBinding.tvStandardWeight.text = formatNullString(it.targetWeight) + mBinding.tvStandardWeight.text = targetWeight // 心血管健康 - if (it.hypertension != 1) { - mBinding.llHighPressureTag.visibility = View.INVISIBLE + if (it.hypertension == 1) { + mBinding.llHighPressureTag.visibility = View.VISIBLE } mBinding.tvSystolicAvg.text = formatNullString(it.systolicPressureAvg) 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.tvDiastolicTarget.text = formatNullString(it.diastolicPressureTarget) - mBinding.tvDiastolic.text = formatNullString(it.diastolicPressureAvg) + mBinding.tvDiastolic.text = formatNullString(it.diastolicPressureCurrent) // 代谢指标 // 心血管健康 - if (it.diabetes != 1) { - mBinding.llDiabetesTag.visibility = View.INVISIBLE + if (it.diabetes == 1) { + mBinding.llDiabetesTag.visibility = View.VISIBLE } - mBinding.llDiabetesTag.visibility = if (it.diabetes != 0) View.VISIBLE else View.GONE mBinding.tvFbsValue.text = formatNullString(it.glu) mBinding.tvFbsTarget.text = formatNullString(it.bloodSugarTarget) - mBinding.tvFbsCurrent.text = formatNullString(it.glu) + mBinding.tvFbsCurrent.text = formatNullString(it.bloodSugarCurrent) // 血脂四项 mBinding.tvTcValue.text = it.tc @@ -109,11 +136,12 @@ class ProposalActivity : mBinding.tvHcyCurrent.text = it.homocysteine // 医疗意见与记录 - mBinding.tvCabinOpinion.text = it.cabinOpinion + mBinding.tvCabinOpinion.text = it.cabinOpinion ?: "暂无小屋意见" mBinding.tvCabinTime.text = it.cabinOpinionTime mBinding.tvCabinReporter.text = it.cabinOpinionUserName - mBinding.tvDoctorTime.text = it.expertOpinionTime - mBinding.tvDoctorReporter.text = it.expertOpinionUserName + mBinding.tvExpertOpinion.text = it.expertOpinion ?: "暂无专家医生意见" + mBinding.tvExpertOpinionTime.text = it.expertOpinionTime + mBinding.tvExpertOpinionUserName.text = it.expertOpinionUserName } } diff --git a/app/src/main/java/com/xjjk/healthyclients/ui/activity/SelectLocationActivity.kt b/app/src/main/java/com/xjjk/healthyclients/ui/activity/SelectLocationActivity.kt index 9039b69..c27fab9 100644 --- a/app/src/main/java/com/xjjk/healthyclients/ui/activity/SelectLocationActivity.kt +++ b/app/src/main/java/com/xjjk/healthyclients/ui/activity/SelectLocationActivity.kt @@ -14,6 +14,11 @@ import com.amap.api.maps.model.CameraPosition import com.amap.api.maps.model.LatLng import com.amap.api.maps.model.MarkerOptions 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.permissionx.guolindev.PermissionX import com.tencent.qcloud.tuicore.util.ToastUtil @@ -38,6 +43,7 @@ class SelectLocationActivity : BaseVMBActivity + + + diff --git a/app/src/main/res/drawable/bg_dept_badge_unselected.xml b/app/src/main/res/drawable/bg_dept_badge_unselected.xml new file mode 100644 index 0000000..0d21655 --- /dev/null +++ b/app/src/main/res/drawable/bg_dept_badge_unselected.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/res/drawable/bg_emergency_close_btn.xml b/app/src/main/res/drawable/bg_emergency_close_btn.xml new file mode 100644 index 0000000..c5e68ca --- /dev/null +++ b/app/src/main/res/drawable/bg_emergency_close_btn.xml @@ -0,0 +1,4 @@ + + + diff --git a/app/src/main/res/drawable/bg_emergency_confirm_btn.xml b/app/src/main/res/drawable/bg_emergency_confirm_btn.xml new file mode 100644 index 0000000..461bf60 --- /dev/null +++ b/app/src/main/res/drawable/bg_emergency_confirm_btn.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/res/drawable/bg_emergency_dialog_card.xml b/app/src/main/res/drawable/bg_emergency_dialog_card.xml new file mode 100644 index 0000000..a8ae65b --- /dev/null +++ b/app/src/main/res/drawable/bg_emergency_dialog_card.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/res/drawable/bg_emergency_item_selected.xml b/app/src/main/res/drawable/bg_emergency_item_selected.xml new file mode 100644 index 0000000..dc1c306 --- /dev/null +++ b/app/src/main/res/drawable/bg_emergency_item_selected.xml @@ -0,0 +1,8 @@ + + + + + diff --git a/app/src/main/res/drawable/bg_emergency_item_unselected.xml b/app/src/main/res/drawable/bg_emergency_item_unselected.xml new file mode 100644 index 0000000..f763ee4 --- /dev/null +++ b/app/src/main/res/drawable/bg_emergency_item_unselected.xml @@ -0,0 +1,8 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_emergency_clock.xml b/app/src/main/res/drawable/ic_emergency_clock.xml new file mode 100644 index 0000000..769e61c --- /dev/null +++ b/app/src/main/res/drawable/ic_emergency_clock.xml @@ -0,0 +1,19 @@ + + + + diff --git a/app/src/main/res/drawable/ic_emergency_close.xml b/app/src/main/res/drawable/ic_emergency_close.xml new file mode 100644 index 0000000..563c85d --- /dev/null +++ b/app/src/main/res/drawable/ic_emergency_close.xml @@ -0,0 +1,12 @@ + + + diff --git a/app/src/main/res/drawable/ic_emergency_location.xml b/app/src/main/res/drawable/ic_emergency_location.xml new file mode 100644 index 0000000..a666090 --- /dev/null +++ b/app/src/main/res/drawable/ic_emergency_location.xml @@ -0,0 +1,15 @@ + + + + diff --git a/app/src/main/res/drawable/ic_emergency_radio_selected.xml b/app/src/main/res/drawable/ic_emergency_radio_selected.xml new file mode 100644 index 0000000..226186d --- /dev/null +++ b/app/src/main/res/drawable/ic_emergency_radio_selected.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_emergency_radio_unselected.xml b/app/src/main/res/drawable/ic_emergency_radio_unselected.xml new file mode 100644 index 0000000..8005b40 --- /dev/null +++ b/app/src/main/res/drawable/ic_emergency_radio_unselected.xml @@ -0,0 +1,7 @@ + + + + diff --git a/app/src/main/res/layout/activity_proposal.xml b/app/src/main/res/layout/activity_proposal.xml index 6b3435e..eec4c7f 100644 --- a/app/src/main/res/layout/activity_proposal.xml +++ b/app/src/main/res/layout/activity_proposal.xml @@ -79,7 +79,7 @@ android:textColor="@color/text_primary_25" android:textSize="18sp" android:textStyle="bold" - tools:text="艾比拜·牙库甫" /> + android:text="--" /> + android:text="--"/> + android:text="--" /> @@ -175,7 +177,7 @@ android:gravity="end" android:textColor="@color/text_primary_25" android:textSize="13sp" - tools:text="650202197403151234" /> + android:text="--" /> + android:text="--" /> @@ -249,10 +251,12 @@ @@ -299,7 +303,7 @@ android:layout_height="wrap_content" android:textColor="@color/text_primary_25" android:textSize="13sp" - tools:text="陈沐辰" /> + android:text="--"/> @@ -334,7 +338,8 @@ android:maxLines="2" android:singleLine="false" android:textColor="@color/text_tab_color" - android:textSize="13sp" /> + android:textSize="13sp" + android:text="--" /> @@ -381,7 +386,8 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_vertical" - android:orientation="horizontal"> + android:orientation="horizontal" + android:visibility="invisible"> + android:text="--" /> + android:text="--"/> @@ -507,14 +513,29 @@ android:gravity="center" android:orientation="vertical"> - + android:gravity="bottom" + android:orientation="horizontal"> + + + + + + android:text="--"/> + android:text="--"/> + android:orientation="horizontal" + android:visibility="invisible"> @@ -918,7 +939,8 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_vertical" - android:orientation="horizontal"> + android:orientation="horizontal" + android:visibility="invisible"> - - + android:textSize="11sp"/> + android:textSize="11sp"/> @@ -1871,130 +1882,24 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/ll_medical_advice"> - + android:textStyle="bold" />--> - - - - - - - - - - - - - - - - - - - - - - - - + android:text="暂无小屋意见。" /> - - - - - @@ -2108,21 +1978,19 @@ android:paddingEnd="16dp"> + android:textSize="11sp" /> + android:textSize="11sp" /> @@ -2141,122 +2009,26 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/ll_doctor_opinion"> - + android:textStyle="bold" />--> + android:text="暂无专家医生意见。" /> - - - - - - - - - - - - - - - - - - - - - - + + android:layout_height="match_parent" + android:clickable="true" + android:focusable="true" + android:background="@android:color/transparent"> - - - + android:layout_marginHorizontal="20dp" + android:layout_gravity="center" + android:orientation="vertical" + android:background="@drawable/bg_emergency_dialog_card" + android:paddingBottom="16dp"> - + + - + - + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/item_group_info.xml b/app/src/main/res/layout/item_group_info.xml index 469e1ea..ddc25ac 100644 --- a/app/src/main/res/layout/item_group_info.xml +++ b/app/src/main/res/layout/item_group_info.xml @@ -3,47 +3,120 @@ xmlns:tools="http://schemas.android.com/tools"> + android:orientation="vertical" + android:paddingStart="16dp" + android:paddingEnd="16dp" + android:paddingTop="16dp" + android:paddingBottom="14dp" + android:background="@drawable/bg_emergency_item_unselected"> - + + + + + + + + + + android:background="@drawable/bg_dept_badge_unselected" + tools:text="员工健康事务部" /> - + + - + + android:layout_marginTop="10dp" + android:orientation="horizontal" + android:gravity="center_vertical"> + + + + + + + + + + + + + diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 047052b..9ada37a 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -132,6 +132,18 @@ #F36510 #21BEBE #cbebf0 + + + #0F2EB8B2 + #802EB8B2 + #E6E6EA + #F5F7FB + #EAECFA + #252535 + #394356 + #77859E + #F1F5F9 + #2EB8B2 #606060 #77849E diff --git a/app/src/main/res/values/style.xml b/app/src/main/res/values/style.xml index 1a14692..0683f84 100644 --- a/app/src/main/res/values/style.xml +++ b/app/src/main/res/values/style.xml @@ -39,6 +39,16 @@ 0.5 + + +