From 399afecb141d9e0b2240bc79602df41f23ce982d Mon Sep 17 00:00:00 2001 From: YunLei Date: Tue, 8 Nov 2022 15:22:16 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BF=E5=AE=A2=E7=AE=A1=E7=90=86=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E6=A0=B8=E9=85=B8=E6=8A=A5=E5=91=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/misc.xml | 2 +- app/build.gradle | 4 +- .../yzx/escreen/adapter/VisitorListAdapter.kt | 17 +- .../java/com/yzx/escreen/model/Visitor.kt | 71 +++++-- .../com/yzx/escreen/widget/VisitorDialog.kt | 21 +- app/src/main/res/layout/dialog_visitor.xml | 188 +++++++++++++----- app/src/main/res/layout/fragment_visitor.xml | 8 +- .../main/res/layout/layout_visitor_table.xml | 52 ++++- app/src/main/res/values/dimens.xml | 1 + 9 files changed, 294 insertions(+), 70 deletions(-) diff --git a/.idea/misc.xml b/.idea/misc.xml index cae34ec..2fcbc16 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -28,7 +28,7 @@ - + diff --git a/app/build.gradle b/app/build.gradle index 289f956..81a1260 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -19,8 +19,8 @@ android { // minSdkVersion 26 minSdkVersion 21 targetSdkVersion 25 - versionCode 16 - versionName "2.1.1" + versionCode 18 + versionName "2.1.3" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" // ndk { diff --git a/app/src/main/java/com/yzx/escreen/adapter/VisitorListAdapter.kt b/app/src/main/java/com/yzx/escreen/adapter/VisitorListAdapter.kt index f222c64..ce4abf2 100644 --- a/app/src/main/java/com/yzx/escreen/adapter/VisitorListAdapter.kt +++ b/app/src/main/java/com/yzx/escreen/adapter/VisitorListAdapter.kt @@ -19,7 +19,7 @@ class VisitorListAdapter(list: MutableList) : addChildClickViewIds(R.id.cancelBtn) } - @SuppressLint("SetTextI18n") + @SuppressLint("SetTextI18n", "Range") override fun convert(holder: BaseViewHolder, item: Visitor) { holder.itemView.userName.text = item.user_name if (item.face_key.isNotEmpty()) { @@ -66,6 +66,21 @@ class VisitorListAdapter(list: MutableList) : holder.itemView.healthCodeImg.visibility = View.GONE } } + if(item.nuclein_file_key.isNullOrBlank()){ + holder.itemView.nucleinEmpty.visibility = View.VISIBLE + holder.itemView.nucleinImg.visibility = View.GONE + }else{ + holder.itemView.nucleinImg.visibility = View.VISIBLE + holder.itemView.nucleinEmpty.visibility = View.GONE + holder.itemView.nucleinImg.setSrc(item.nuclein_file_identity, item.nuclein_file_key) + } + if(item.nuclein_time>0){ + holder.itemView.nucleinStatusLayout.visibility = View.VISIBLE + holder.itemView.nucleinStatus.text = item.getNucleinStatusObj().nuclein_name + holder.itemView.nucleinStatus.setTextColor(Color.parseColor(item.getNucleinStatusObj().nuclein_color)) + }else{ + holder.itemView.nucleinStatusLayout.visibility = View.GONE + } if (item.trip_code_key.isNullOrBlank()) { holder.itemView.tripCodeEmpty.visibility = View.VISIBLE holder.itemView.tripCodeImg.visibility = View.GONE diff --git a/app/src/main/java/com/yzx/escreen/model/Visitor.kt b/app/src/main/java/com/yzx/escreen/model/Visitor.kt index 6ae7584..fc00685 100644 --- a/app/src/main/java/com/yzx/escreen/model/Visitor.kt +++ b/app/src/main/java/com/yzx/escreen/model/Visitor.kt @@ -1,5 +1,7 @@ package com.yzx.escreen.model +import kotlin.math.abs + data class Visitor( val add_time: Int = 0, val auditRecordOuts: MutableList = mutableListOf(), @@ -29,28 +31,67 @@ data class Visitor( val user_name: String = "", val user_phone: String = "", val user_type: Int = 0, - val visit_reason: String = "" -){ + val visit_reason: String = "", + val nuclein_file_key: String = "", + val nuclein_file_identity: String = "", + val nuclein_time: Int = 0, + val nuclein_result: Int = 0 +) { fun getStatusImg(): String { return when (audit_status) { - 0 -> "https://oa-edu-1259243469.cos.ap-chengdu.myqcloud.com/public/v_status_0.png" - 1 -> "https://oa-edu-1259243469.cos.ap-chengdu.myqcloud.com/public/v_status_1.png" - 2 -> "https://oa-edu-1259243469.cos.ap-chengdu.myqcloud.com/public/v_status_2.png" - -1 -> "https://oa-edu-1259243469.cos.ap-chengdu.myqcloud.com/public/v_status_-1.png" - else -> "--" - } + 0 -> "https://oa-edu-1259243469.cos.ap-chengdu.myqcloud.com/public/v_status_0.png" + 1 -> "https://oa-edu-1259243469.cos.ap-chengdu.myqcloud.com/public/v_status_1.png" + 2 -> "https://oa-edu-1259243469.cos.ap-chengdu.myqcloud.com/public/v_status_2.png" + -1 -> "https://oa-edu-1259243469.cos.ap-chengdu.myqcloud.com/public/v_status_-1.png" + else -> "--" + } } - fun getStep():MutableList{ + fun getStep(): MutableList { val list = mutableListOf() - list.add(AuditRecordOut(add_time=add_time, typeTxt = "发起申请")) + list.add(AuditRecordOut(add_time = add_time, typeTxt = "发起申请")) auditRecordOuts.forEach { list.add(it.getCopyItem()) } return list } + + fun getNucleinStatusObj(): NucleinStatusObj { + val time = abs(add_time - nuclein_time) + val nucleinResultName = if (nuclein_result == 2) { + "阳性" + } else { + "阴性" + } + var name = "" + var color = "#5DAD64" + when { + time < 24 * 60 * 60 -> { + name = "省内24小时:${nucleinResultName}" + color = "#5DAD64"; + } + time < 48 * 60 * 60 -> { + name = "省内48小时:${nucleinResultName}" + color = "#3c7ef6"; + } + time < 72 * 60 * 60 -> { + name = "省内72小时:${nucleinResultName}" + color = "#62D5FF"; + } + else -> { + name = "省内72小时以上:${nucleinResultName}" + color = "#999999"; + } + } + if (nuclein_result == 2) { + color = "#ff4040" + } + return NucleinStatusObj(name, color) + } } +data class NucleinStatusObj(val nuclein_name: String = "", + val nuclein_color: String = "#333333") data class AuditRecordOut( val add_time: Int = 0, val audit_remark: String = "", @@ -58,15 +99,15 @@ data class AuditRecordOut( val audit_user_name: String = "", val typeTxt: String = "", val id: Int = 0 -){ - fun getTitle():String{ - if(typeTxt.isNotEmpty()){ +) { + fun getTitle(): String { + if (typeTxt.isNotEmpty()) { return typeTxt } return "接待人审批" } - fun getCopyItem():AuditRecordOut{ - return AuditRecordOut(add_time,audit_remark,audit_status, audit_user_name, typeTxt, id) + fun getCopyItem(): AuditRecordOut { + return AuditRecordOut(add_time, audit_remark, audit_status, audit_user_name, typeTxt, id) } } \ No newline at end of file diff --git a/app/src/main/java/com/yzx/escreen/widget/VisitorDialog.kt b/app/src/main/java/com/yzx/escreen/widget/VisitorDialog.kt index c24aac0..33552ba 100644 --- a/app/src/main/java/com/yzx/escreen/widget/VisitorDialog.kt +++ b/app/src/main/java/com/yzx/escreen/widget/VisitorDialog.kt @@ -54,7 +54,7 @@ class VisitorDialog( setOnClickListener { } //阻止事件冒泡 } - @SuppressLint("SetTextI18n") + @SuppressLint("SetTextI18n", "Range") fun setData(detail: Visitor) { //处理弹窗显示 find(R.id.userName).text = "${detail.user_name} ${detail.user_phone}" @@ -117,10 +117,29 @@ class VisitorDialog( find(R.id.trip_empty).visibility = View.VISIBLE find(R.id.trip_img).visibility = View.GONE } + if(detail.nuclein_file_key.isNullOrBlank()){ + nuclein_img.visibility = View.GONE + nuclein_empty.visibility = View.VISIBLE + }else{ + nuclein_img.visibility = View.VISIBLE + nuclein_empty.visibility = View.GONE + nuclein_img.setSrc(detail.nuclein_file_identity, detail.nuclein_file_key) + } + if(detail.nuclein_time>0){ + nucleinStatusLayout.visibility = VISIBLE + nucleinStatus.text = detail.getNucleinStatusObj().nuclein_name + nucleinStatus.setTextColor(Color.parseColor(detail.getNucleinStatusObj().nuclein_color)) + }else{ + nucleinStatusLayout.visibility = GONE + } find(R.id.trip_img).setOnClickListener { EventBus.getDefault() .post(ViewImage(detail.id, detail.trip_code_identity, detail.trip_code_key)) } + find(R.id.nuclein_img).setOnClickListener { + EventBus.getDefault() + .post(ViewImage(detail.id, detail.nuclein_file_identity, detail.nuclein_file_key)) + } find(R.id.reception_user).text = "${detail.reception_user}" find(R.id.visit_reason).text = "${detail.visit_reason}" find(R.id.is_drive).text = when (detail.is_drive) { diff --git a/app/src/main/res/layout/dialog_visitor.xml b/app/src/main/res/layout/dialog_visitor.xml index 10d63ac..bf577e0 100644 --- a/app/src/main/res/layout/dialog_visitor.xml +++ b/app/src/main/res/layout/dialog_visitor.xml @@ -54,17 +54,19 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> - + android:layout_height="@dimen/d_20" /> + android:background="@color/colorPrimary" /> + + + + + android:textSize="@dimen/sp20" /> + + + android:visibility="gone" + app:qmui_corner_radius="@dimen/d_5" /> + + android:layout_marginStart="@dimen/d_20" + android:layout_weight="1" + android:gravity="center_horizontal" + android:orientation="vertical"> + + android:textSize="@dimen/sp20" /> + + android:layout_width="match_parent" + android:layout_height="190dp" + android:gravity="center" + android:orientation="vertical"> + + android:textSize="@dimen/d_20" /> + + android:textSize="@dimen/d_15" /> + + + android:visibility="gone" + app:qmui_corner_radius="@dimen/d_5" /> + + android:layout_marginStart="@dimen/d_20" + android:layout_weight="1" + android:gravity="center_horizontal" + android:orientation="vertical"> + + android:textSize="@dimen/sp20" /> + + + + + + + + + + + + + android:visibility="gone" + app:qmui_corner_radius="@dimen/d_5" /> + + + + + + + - + android:layout_height="@dimen/d_20" /> + android:background="@color/colorPrimary" /> + + + - + android:layout_height="@dimen/d_20" /> + android:background="@color/colorPrimary" /> + + + - + android:layout_height="@dimen/d_20" /> + android:background="@color/colorPrimary" /> + + + + android:layout_weight="0.6"> + + + + + + + + + + + 29dp 30dp 70dp + 80dp