Prechádzať zdrojové kódy

1.添加Luban图片压缩库

王鹏鹏 2 rokov pred
rodič
commit
b8d443c51e

+ 3 - 0
.idea/misc.xml

@@ -36,6 +36,7 @@
         <entry key="..\:/workspace/hcp-pad/common/src/main/res/layout/ugckit_fragment_dialog_permission_introduction.xml" value="0.1" />
         <entry key="..\:/workspace/hcp-pad/healthconsultation/src/main/res/drawable/bg_condition_describe.xml" value="0.155" />
         <entry key="..\:/workspace/hcp-pad/healthconsultation/src/main/res/drawable/bg_consult.xml" value="0.155" />
+        <entry key="..\:/workspace/hcp-pad/healthconsultation/src/main/res/drawable/bg_consultation_record.xml" value="0.155" />
         <entry key="..\:/workspace/hcp-pad/healthconsultation/src/main/res/drawable/bg_continue_consultation.xml" value="0.155" />
         <entry key="..\:/workspace/hcp-pad/healthconsultation/src/main/res/drawable/bg_doctor_status.xml" value="0.155" />
         <entry key="..\:/workspace/hcp-pad/healthconsultation/src/main/res/drawable/bg_go_consultation.xml" value="0.155" />
@@ -54,6 +55,7 @@
         <entry key="..\:/workspace/hcp-pad/healthconsultation/src/main/res/drawable/selector_agreement _checkbox.xml" value="0.155" />
         <entry key="..\:/workspace/hcp-pad/healthconsultation/src/main/res/drawable/selector_agreement_checkbox.xml" value="0.155" />
         <entry key="..\:/workspace/hcp-pad/healthconsultation/src/main/res/drawable/selector_bean_hospital.xml" value="0.155" />
+        <entry key="..\:/workspace/hcp-pad/healthconsultation/src/main/res/layout/activity_consultation_record.xml" value="0.22239583333333332" />
         <entry key="..\:/workspace/hcp-pad/healthconsultation/src/main/res/layout/activity_consultation_request.xml" value="0.4421768707482993" />
         <entry key="..\:/workspace/hcp-pad/healthconsultation/src/main/res/layout/activity_consultation_sheet.xml" value="0.72" />
         <entry key="..\:/workspace/hcp-pad/healthconsultation/src/main/res/layout/activity_doctor_details.xml" value="0.42051756007393715" />
@@ -61,6 +63,7 @@
         <entry key="..\:/workspace/hcp-pad/healthconsultation/src/main/res/layout/activity_main.xml" value="0.23697916666666666" />
         <entry key="..\:/workspace/hcp-pad/healthconsultation/src/main/res/layout/dialog_select_pic.xml" value="0.4421768707482993" />
         <entry key="..\:/workspace/hcp-pad/healthconsultation/src/main/res/layout/item_consultation.xml" value="0.3953084274543875" />
+        <entry key="..\:/workspace/hcp-pad/healthconsultation/src/main/res/layout/item_consultation_record.xml" value="0.536" />
         <entry key="..\:/workspace/hcp-pad/healthconsultation/src/main/res/layout/item_image.xml" value="0.536" />
         <entry key="..\:/workspace/hcp-pad/healthconsultation/src/main/res/layout/item_recommend_doctor.xml" value="0.6" />
         <entry key="..\:/workspace/hcp-pad/healthconsultation/src/main/res/layout/item_sick_time.xml" value="0.8800000000000001" />

+ 5 - 0
baselib/src/main/java/com/yingyangfly/baselib/router/RouterUrlCommon.kt

@@ -145,4 +145,9 @@ object RouterUrlCommon {
      */
     const val consultationSheet = "/consultation/sheet"
 
+    /**
+     * 问诊记录
+     */
+    const val consultationRecord = "/consultation/record"
+
 }

+ 6 - 0
healthconsultation/src/main/AndroidManifest.xml

@@ -26,5 +26,11 @@
             android:configChanges="keyboardHidden|orientation|screenSize"
             android:screenOrientation="landscape"
             android:windowSoftInputMode="adjustResize|adjustPan" />
+
+        <activity
+            android:name="com.yingyang.healthconsultation.record.ConsultationRecordActivity"
+            android:configChanges="keyboardHidden|orientation|screenSize"
+            android:screenOrientation="landscape"
+            android:windowSoftInputMode="adjustResize|adjustPan" />
     </application>
 </manifest>

+ 20 - 0
healthconsultation/src/main/java/com/yingyang/healthconsultation/adapter/ConsultationRecordAdapter.kt

@@ -0,0 +1,20 @@
+package com.yingyang.healthconsultation.adapter
+
+import com.yingyang.healthconsultation.R
+import com.yingyang.healthconsultation.databinding.ItemConsultationRecordBinding
+import com.yingyangfly.baselib.adapter.BaseDataBindingAdapter
+import com.yingyangfly.baselib.db.DoctorBean
+
+/**
+ * 问诊记录adapter
+ */
+class ConsultationRecordAdapter(override val layoutId: Int = R.layout.item_consultation_record) :
+    BaseDataBindingAdapter<DoctorBean, ItemConsultationRecordBinding>() {
+    override fun onBindViewHolder(
+        binding: ItemConsultationRecordBinding,
+        item: DoctorBean,
+        position: Int
+    ) {
+        binding.data = item
+    }
+}

+ 85 - 0
healthconsultation/src/main/java/com/yingyang/healthconsultation/record/ConsultationRecordActivity.kt

@@ -0,0 +1,85 @@
+package com.yingyang.healthconsultation.record
+
+import android.annotation.SuppressLint
+import android.view.MotionEvent
+import android.view.View
+import com.alibaba.android.arouter.facade.annotation.Route
+import com.yingyang.healthconsultation.R
+import com.yingyang.healthconsultation.adapter.ConsultationRecordAdapter
+import com.yingyang.healthconsultation.databinding.ActivityConsultationRecordBinding
+import com.yingyangfly.baselib.db.DoctorBean
+import com.yingyangfly.baselib.ext.getEndAnimation
+import com.yingyangfly.baselib.ext.getScaleAnimation
+import com.yingyangfly.baselib.ext.show
+import com.yingyangfly.baselib.mvvm.BaseMVVMActivity
+import com.yingyangfly.baselib.router.RouterUrlCommon
+
+/**
+ * 问诊记录
+ */
+@Route(path = RouterUrlCommon.consultationRecord)
+class ConsultationRecordActivity :
+    BaseMVVMActivity<ActivityConsultationRecordBinding, ConsultationRecordViewModel>(),
+    View.OnTouchListener {
+
+    private var records = mutableListOf<DoctorBean>()
+    private val adapter by lazy { ConsultationRecordAdapter() }
+
+    override fun initViews() {
+        binding {
+            rvRecord.adapter = adapter
+            adapter.setData(records)
+        }
+    }
+
+    @SuppressLint("ClickableViewAccessibility")
+    override fun initListener() {
+        binding.backLayout.setOnTouchListener(this)
+    }
+
+    override fun initData() {
+
+    }
+
+    override fun onResume() {
+        super.onResume()
+        loadData()
+    }
+
+    private fun loadData() {
+        viewModel.getRecords(fail = {
+            it.show()
+        }, success = {
+            records.clear()
+            if (it.isNullOrEmpty().not()) {
+                records.addAll(it!!)
+            }
+            adapter.showEmptyView = records.isNullOrEmpty()
+            adapter.setData(records)
+        })
+    }
+
+    @SuppressLint("ClickableViewAccessibility")
+    override fun onTouch(v: View, event: MotionEvent): Boolean {
+        when (event.action) {
+            MotionEvent.ACTION_DOWN -> {
+                if (v.id == R.id.backLayout) {
+                    v.startAnimation(getScaleAnimation())
+                }
+            }
+            MotionEvent.ACTION_UP -> {
+                v.startAnimation(getEndAnimation())
+                if (v.id == R.id.backLayout) {
+                    //返回首页
+                    finish()
+                }
+            }
+            MotionEvent.ACTION_CANCEL -> {
+                if (v.id == R.id.backLayout) {
+                    v.startAnimation(getEndAnimation())
+                }
+            }
+        }
+        return true
+    }
+}

+ 22 - 0
healthconsultation/src/main/java/com/yingyang/healthconsultation/record/ConsultationRecordViewModel.kt

@@ -0,0 +1,22 @@
+package com.yingyang.healthconsultation.record
+
+import com.yingyang.healthconsultation.entity.UserInfoBean
+import com.yingyang.healthconsultation.net.HEALTHCONSULTATION_API
+import com.yingyangfly.baselib.db.DoctorBean
+import com.yingyangfly.baselib.mvvm.BaseViewModel
+
+/**
+ * @author 王鹏鹏
+ */
+class ConsultationRecordViewModel : BaseViewModel() {
+
+    fun getRecords(
+        fail: ((msg: String) -> Unit)? = null,
+        success: ((success: List<DoctorBean>?) -> Unit)? = null,
+    ) = launchFlow(true) {
+        HEALTHCONSULTATION_API.getRecommendDoctorList()
+    }.runUI(
+        success,
+        fail
+    )
+}

+ 6 - 0
healthconsultation/src/main/manifest/AndroidManifest.xml

@@ -25,5 +25,11 @@
             android:configChanges="keyboardHidden|orientation|screenSize"
             android:screenOrientation="landscape"
             android:windowSoftInputMode="adjustResize|adjustPan" />
+
+        <activity
+            android:name="com.yingyang.healthconsultation.record.ConsultationRecordActivity"
+            android:configChanges="keyboardHidden|orientation|screenSize"
+            android:screenOrientation="landscape"
+            android:windowSoftInputMode="adjustResize|adjustPan" />
     </application>
 </manifest>

+ 18 - 0
healthconsultation/src/main/res/drawable/bg_consultation_record.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    tools:ignore="ResourceName">
+
+    <item>
+        <shape android:shape="rectangle">
+            <corners android:radius="@dimen/divider_13px" />
+            <gradient
+                android:angle="180"
+                android:endColor="@color/color_FF4174FF"
+                android:startColor="@color/color_FF6D9AFF"
+                android:type="linear"
+                android:useLevel="true" />
+        </shape>
+    </item>
+
+</layer-list>

+ 68 - 0
healthconsultation/src/main/res/layout/activity_consultation_record.xml

@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    tools:ignore="ResourceName">
+
+    <androidx.constraintlayout.widget.ConstraintLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:background="@mipmap/icon_uniform_background">
+
+        <LinearLayout
+            android:id="@+id/backLayout"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="@dimen/divider_65px"
+            android:layout_marginTop="@dimen/divider_35px"
+            android:gravity="center"
+            android:orientation="horizontal"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent">
+
+            <androidx.appcompat.widget.AppCompatImageView
+                android:layout_width="@dimen/divider_48px"
+                android:layout_height="@dimen/divider_48px"
+                android:background="@mipmap/icon_back" />
+
+            <androidx.appcompat.widget.AppCompatTextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginStart="@dimen/divider_14px"
+                android:text="@string/back_pager"
+                android:textColor="@android:color/white"
+                android:textSize="@dimen/divider_28px"
+                android:textStyle="bold" />
+
+        </LinearLayout>
+
+        <androidx.appcompat.widget.AppCompatTextView
+            android:id="@+id/tvTitle"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="@dimen/divider_32px"
+            android:text="@string/consultation_record"
+            android:textColor="@android:color/white"
+            android:textSize="@dimen/divider_38px"
+            android:textStyle="bold"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent" />
+
+        <androidx.recyclerview.widget.RecyclerView
+            android:id="@+id/rvRecord"
+            android:layout_width="match_parent"
+            android:layout_height="0dp"
+            android:layout_marginStart="@dimen/divider_58px"
+            android:layout_marginTop="@dimen/divider_16px"
+            android:layout_marginEnd="@dimen/divider_58px"
+            android:paddingBottom="@dimen/divider_36px"
+            app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toBottomOf="@+id/tvTitle" />
+
+
+    </androidx.constraintlayout.widget.ConstraintLayout>
+</layout>

+ 121 - 0
healthconsultation/src/main/res/layout/item_consultation_record.xml

@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    tools:ignore="ResourceName">
+
+    <data>
+
+        <variable
+            name="data"
+            type="com.yingyangfly.baselib.db.DoctorBean" />
+    </data>
+
+    <com.google.android.material.card.MaterialCardView
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="@dimen/divider_20px"
+        android:minHeight="@dimen/divider_186px"
+        android:theme="@style/Theme.MaterialComponents.NoActionBar"
+        app:cardBackgroundColor="@android:color/white"
+        app:cardCornerRadius="@dimen/divider_20px">
+
+        <androidx.constraintlayout.widget.ConstraintLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent">
+
+            <androidx.appcompat.widget.AppCompatImageView
+                android:id="@+id/imageHead"
+                android:layout_width="@dimen/divider_100px"
+                android:layout_height="@dimen/divider_100px"
+                android:layout_marginStart="@dimen/divider_32px"
+                android:layout_marginTop="@dimen/divider_32px"
+                app:layout_constraintStart_toStartOf="parent"
+                app:layout_constraintTop_toTopOf="parent" />
+
+            <androidx.appcompat.widget.AppCompatTextView
+                android:id="@+id/tvName"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginStart="@dimen/divider_27px"
+                android:layout_marginTop="@dimen/divider_28px"
+                android:text="@{data.userName}"
+                android:textColor="@color/color_FF333333"
+                android:textSize="@dimen/divider_28px"
+                android:textStyle="bold"
+                app:layout_constraintStart_toEndOf="@+id/imageHead"
+                app:layout_constraintTop_toTopOf="parent"
+                tools:text="@string/album" />
+
+            <androidx.appcompat.widget.AppCompatTextView
+                android:id="@+id/tvDuties"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginStart="@dimen/divider_40px"
+                android:layout_marginTop="@dimen/divider_32px"
+                android:text='@{data.title+":"+data.departmentName}'
+                android:textColor="@color/color_FF333333"
+                android:textSize="@dimen/divider_24px"
+                app:layout_constraintStart_toEndOf="@+id/tvName"
+                app:layout_constraintTop_toTopOf="parent"
+                tools:text="@string/album" />
+
+            <androidx.appcompat.widget.AppCompatTextView
+                android:id="@+id/tvContent"
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_marginStart="@dimen/divider_27px"
+                android:layout_marginTop="@dimen/divider_9px"
+                android:text="@{data.speciality}"
+                android:textColor="@color/color_FF333333"
+                android:textSize="@dimen/divider_24px"
+                app:layout_constraintEnd_toEndOf="parent"
+                app:layout_constraintStart_toEndOf="@+id/imageHead"
+                app:layout_constraintTop_toBottomOf="@+id/tvName"
+                tools:text="@string/album" />
+
+            <androidx.appcompat.widget.AppCompatTextView
+                android:id="@+id/tvTime"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginStart="@dimen/divider_27px"
+                android:layout_marginTop="@dimen/divider_12px"
+                android:text="@{data.createTime}"
+                android:textColor="@color/color_FF333333"
+                android:textSize="@dimen/divider_24px"
+                app:layout_constraintStart_toEndOf="@+id/imageHead"
+                app:layout_constraintTop_toBottomOf="@+id/tvContent"
+                tools:text="@string/album" />
+
+            <androidx.appcompat.widget.AppCompatButton
+                android:id="@+id/btnEvaluate"
+                android:layout_width="@dimen/divider_160px"
+                android:layout_height="@dimen/divider_58px"
+                android:layout_marginTop="@dimen/divider_108px"
+                android:layout_marginEnd="@dimen/divider_16px"
+                android:background="@drawable/bg_consultation_record"
+                android:gravity="center"
+                android:textColor="@android:color/white"
+                android:textSize="@dimen/divider_20px"
+                app:layout_constraintEnd_toStartOf="@+id/btnRecord"
+                app:layout_constraintTop_toTopOf="parent"
+                tools:text="@string/evaluate" />
+
+            <androidx.appcompat.widget.AppCompatButton
+                android:id="@+id/btnRecord"
+                android:layout_width="@dimen/divider_160px"
+                android:layout_height="@dimen/divider_58px"
+                android:layout_marginTop="@dimen/divider_108px"
+                android:layout_marginEnd="@dimen/divider_20px"
+                android:background="@drawable/bg_consultation_record"
+                android:gravity="center"
+                android:textColor="@android:color/white"
+                android:textSize="@dimen/divider_20px"
+                app:layout_constraintEnd_toEndOf="parent"
+                app:layout_constraintTop_toTopOf="parent"
+                tools:text="@string/album" />
+
+        </androidx.constraintlayout.widget.ConstraintLayout>
+    </com.google.android.material.card.MaterialCardView>
+
+</layout>

+ 1 - 0
healthconsultation/src/main/res/values/dimens.xml

@@ -70,6 +70,7 @@
     <dimen name="divider_195px" tools:ignore="ResourceName">195px</dimen>
     <dimen name="divider_190px" tools:ignore="ResourceName">190px</dimen>
     <dimen name="divider_188px" tools:ignore="ResourceName">188px</dimen>
+    <dimen name="divider_186px" tools:ignore="ResourceName">186px</dimen>
     <dimen name="divider_184px" tools:ignore="ResourceName">184px</dimen>
     <dimen name="divider_180px" tools:ignore="ResourceName">180px</dimen>
     <dimen name="divider_176px" tools:ignore="ResourceName">176px</dimen>

+ 2 - 0
healthconsultation/src/main/res/values/strings.xml

@@ -25,4 +25,6 @@
     <string name="i_have_read_relevant_agreements_privacy_policies" tools:ignore="ResourceName">我已阅读相关协议及隐私政策</string>
     <string name="album" tools:ignore="ResourceName">相册</string>
     <string name="camera" tools:ignore="ResourceName">拍摄</string>
+    <string name="consultation_record" tools:ignore="ResourceName">问诊记录</string>
+    <string name="evaluate" tools:ignore="ResourceName">评价</string>
 </resources>