Browse Source

1.添加评价记录功能

王鹏鹏 2 years ago
parent
commit
2cdcf85658

+ 4 - 1
.idea/misc.xml

@@ -44,6 +44,7 @@
         <entry key="..\:/workspace/hcp-pad/healthconsultation/src/main/res/drawable/bg_home_page_content.xml" value="0.155" />
         <entry key="..\:/workspace/hcp-pad/healthconsultation/src/main/res/drawable/bg_home_page_search.xml" value="0.155" />
         <entry key="..\:/workspace/hcp-pad/healthconsultation/src/main/res/drawable/bg_home_page_title.xml" value="0.155" />
+        <entry key="..\:/workspace/hcp-pad/healthconsultation/src/main/res/drawable/bg_image_upload_selector.xml" value="0.155" />
         <entry key="..\:/workspace/hcp-pad/healthconsultation/src/main/res/drawable/bg_payment_selected.xml" value="0.155" />
         <entry key="..\:/workspace/hcp-pad/healthconsultation/src/main/res/drawable/bg_payment_timing.xml" value="0.155" />
         <entry key="..\:/workspace/hcp-pad/healthconsultation/src/main/res/drawable/bg_payment_unselected.xml" value="0.155" />
@@ -57,6 +58,7 @@
         <entry key="..\:/workspace/hcp-pad/healthconsultation/src/main/res/drawable/bg_sick_unselected.xml" value="0.155" />
         <entry key="..\:/workspace/hcp-pad/healthconsultation/src/main/res/drawable/bg_submit.xml" value="0.155" />
         <entry key="..\:/workspace/hcp-pad/healthconsultation/src/main/res/drawable/bg_unselected_item.xml" value="0.155" />
+        <entry key="..\:/workspace/hcp-pad/healthconsultation/src/main/res/drawable/progressbar_color.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_agreement_checkbox.xml" value="0.155" />
         <entry key="..\:/workspace/hcp-pad/healthconsultation/src/main/res/drawable/selector_bean_hospital.xml" value="0.155" />
@@ -67,13 +69,14 @@
         <entry key="..\:/workspace/hcp-pad/healthconsultation/src/main/res/layout/activity_evaluate.xml" value="0.264" />
         <entry key="..\:/workspace/hcp-pad/healthconsultation/src/main/res/layout/activity_health_consultation.xml" value="0.4" />
         <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/activity_paid.xml" value="0.264" />
         <entry key="..\:/workspace/hcp-pad/healthconsultation/src/main/res/layout/activity_payment.xml" value="0.31773743016759776" />
         <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/fragment_evaluate.xml" value="0.22239583333333332" />
         <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_evaluate.xml" value="1.0" />
-        <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_image.xml" value="0.6682539682539682" />
         <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" />
         <entry key="..\:/workspace/hcp-pad/home/src/main/res/drawable/anim_loading.xml" value="0.2185" />

+ 1 - 2
baselib/src/main/java/com/yingyangfly/baselib/adapter/XBaseAdapter.kt

@@ -35,8 +35,7 @@ open class XBaseAdapter<T>(
             val view = ViewTool.inflateLayoutPixels(parent.context, viewEmpty, 1194, 834)
             return ViewHolder(view, bindView)
         }
-        val viewLayout =
-            LayoutInflater.from(parent.context).inflate(layoutResourceId, parent, false)
+        val viewLayout = LayoutInflater.from(parent.context).inflate(layoutResourceId, parent, false)
         val view = ViewTool.inflateLayoutPixels(parent.context, viewLayout, 1194, 834)
         return ViewHolder(view, bindView)
     }

+ 1 - 1
baselib/src/main/java/com/yingyangfly/baselib/utils/FileMultipartBuilder.java

@@ -19,7 +19,7 @@ public class FileMultipartBuilder {
         for (int i = 0; i < files.size(); i++) {
             File file = files.get(i);
             RequestBody requestBody = RequestBody.create(MediaType.parse("image/png"), file);
-            builder.addFormDataPart("dirName", "yingyangfly" + position + file.getName().substring(file.getName().indexOf(".")), requestBody);
+            builder.addFormDataPart("file", "yingyangfly" + position + file.getName().substring(file.getName().indexOf(".")), requestBody);
         }
         builder.setType(MultipartBody.FORM);
         return builder.build();

+ 18 - 0
baselib/src/main/java/com/yingyangfly/baselib/utils/img/ImgUtil.java

@@ -113,6 +113,24 @@ public class ImgUtil {
                 .into(new TransformationUtils(img));
     }
 
+    /**
+     * 圆角图片
+     *
+     * @param context
+     * @param imgUrl
+     * @param img
+     * @param dPlaceHolder
+     * @param dError
+     */
+    public static void loadImg(Context context, String imgUrl, ImageView img, int dPlaceHolder, int dError) {
+        RequestOptions options = new RequestOptions()
+                .placeholder(dPlaceHolder)
+                .error(dError)
+                .diskCacheStrategy(DiskCacheStrategy.ALL);
+        Glide.with(context).load(imgUrl).apply(options).into(img);
+    }
+
+
     /**
      * 圆角图片
      *

+ 46 - 14
healthconsultation/src/main/java/com/yingyang/healthconsultation/consultationsheet/ConsultationSheetActivity.kt

@@ -8,6 +8,7 @@ import android.text.TextUtils
 import android.view.MotionEvent
 import android.view.View
 import android.widget.ImageView
+import android.widget.LinearLayout
 import androidx.recyclerview.widget.GridLayoutManager
 import androidx.recyclerview.widget.LinearLayoutManager
 import androidx.recyclerview.widget.RecyclerView
@@ -25,6 +26,7 @@ import com.yingyangfly.baselib.mvvm.BaseMVVMActivity
 import com.yingyangfly.baselib.router.RouterUrlCommon
 import com.yingyangfly.baselib.utils.GlideImgUtil
 import com.yingyangfly.baselib.utils.LogUtil
+import com.yingyangfly.baselib.utils.img.ImgUtil
 import top.zibin.luban.Luban
 import top.zibin.luban.OnCompressListener
 import java.io.File
@@ -67,7 +69,7 @@ class ConsultationSheetActivity :
     private fun initImageRv() {
         emptyUploadImgBean = UploadImgBean()
         imageList.add(emptyUploadImgBean)
-        binding.rvPic.layoutManager = object : GridLayoutManager(mContext, 4) {
+        binding.rvPic.layoutManager = object : GridLayoutManager(mContext, 5) {
             override fun canScrollVertically(): Boolean {
                 return false
             }
@@ -79,28 +81,36 @@ class ConsultationSheetActivity :
             val img = view.findViewById<ImageView>(R.id.img)
             val ivAdd = view.findViewById<ImageView>(R.id.iv_add)
             val imgDelete = view.findViewById<ImageView>(R.id.img_delete)
-            img.show(bean.isEmpty().not())
-            ivAdd.show(bean.isEmpty())
-            imgDelete.show(bean.isEmpty().not())
-            if (bean.isEmpty().not()) {
+            if (bean.isEmpty()) {
+                ivAdd.visibility = View.VISIBLE
+                img.visibility = View.GONE
+                imgDelete.visibility = View.GONE
+            } else {
                 if (!bean.uploadFlag) {
-                    GlideImgUtil.loadImage(mContext, R.mipmap.icon_add_pic, img)
+                    ImgUtil.loadImage(mContext, R.mipmap.icon_add_pic, img)
                 }
-                if (bean.remotePath.isEmpty()) {
+                ivAdd.visibility = View.GONE
+                img.visibility = View.VISIBLE
+                imgDelete.visibility = View.VISIBLE
+                val params = img.layoutParams
+                params.height = params.width
+                if (bean.remotePath.isNullOrEmpty()) {
                     upLoadImg(i, img)
                 } else {
-                    GlideImgUtil.loadRoundImg(
-                        mContext,
-                        if (bean.localPaht.isEmpty()) bean.remotePath else bean.localPaht,
-                        img
-                    )
+                    if (bean.localPaht.isEmpty()) {
+                        ImgUtil.loadRoundImg(mContext, bean.remotePath, img)
+                    } else {
+                        ImgUtil.loadRoundImg(mContext, bean.localPaht, img)
+                    }
                 }
+
             }
             ivAdd.setOnSingleClickListener {
                 if (bean.isEmpty()) {
                     selectPic()
                 } else if (!bean.uploadFlag) {
-
+                    ImgUtil.loadImage(mContext, R.mipmap.icon_add_pic, img)
+                    upLoadImg(i, img)
                 }
             }
         }
@@ -283,8 +293,30 @@ class ConsultationSheetActivity :
                 listFile.add(File(uploadBean.localPaht))
                 viewModel.uploadFile(listFile, position, fail = {
                     it.toast()
+                    imageList[position].uploadFlag = false
+                    ImgUtil.loadImg(
+                        mContext,
+                        "",
+                        imgView,
+                        R.mipmap.icon_add_pic,
+                        R.mipmap.icon_imgreload
+                    )
                 }, success = {
-
+                    if (it.isNullOrEmpty().not()) {
+                        uploadBean.remotePath = it!!
+                        uploadBean.uploadFlag = true
+                        imageList[position] = uploadBean
+                        ImgUtil.loadRoundImg(mContext, uploadBean.localPaht, imgView)
+                    } else {
+                        imageList[position].uploadFlag = false
+                        ImgUtil.loadImg(
+                            mContext,
+                            "",
+                            imgView,
+                            R.mipmap.icon_add_pic,
+                            R.mipmap.icon_imgreload
+                        )
+                    }
                 })
             }
         }

+ 2 - 2
healthconsultation/src/main/java/com/yingyang/healthconsultation/consultationsheet/ConsultationSheetViewModel.kt

@@ -25,10 +25,10 @@ class ConsultationSheetViewModel : BaseViewModel() {
         listFile: List<File>,
         position: Int,
         fail: ((msg: String) -> Unit)? = null,
-        success: ((success: Unit?) -> Unit)? = null,
+        success: ((success: String?) -> Unit)? = null,
     ) = launchFlow(false) {
         val mBody = FileMultipartBuilder.filesToMultipartBody(listFile, position)
-        HEALTHCONSULTATION_API.uploadFile(mBody)
+        HEALTHCONSULTATION_API.uploadFile("dirName", mBody)
     }.runUI(
         success,
         fail

+ 2 - 1
healthconsultation/src/main/java/com/yingyang/healthconsultation/net/HealthConsultationApiService.kt

@@ -8,6 +8,7 @@ import okhttp3.MultipartBody
 import okhttp3.RequestBody
 import retrofit2.http.Body
 import retrofit2.http.POST
+import retrofit2.http.Query
 
 interface HealthConsultationApiService {
 
@@ -33,7 +34,7 @@ interface HealthConsultationApiService {
      * 上传文件接口
      */
     @POST("common/upload")
-    suspend fun uploadFile(@Body multipartBody: MultipartBody): BaseResp<Unit>
+    suspend fun uploadFile( @Query("dirName") dirName: String, @Body multipartBody: MultipartBody): BaseResp<String>
 
     /**
      * 评价列表

+ 22 - 0
healthconsultation/src/main/java/com/yingyang/healthconsultation/paid/PaidActivity.kt

@@ -0,0 +1,22 @@
+package com.yingyang.healthconsultation.paid
+
+import com.yingyang.healthconsultation.databinding.ActivityPaidBinding
+import com.yingyangfly.baselib.mvvm.BaseMVVMActivity
+
+/**
+ * 已支付
+ */
+class PaidActivity : BaseMVVMActivity<ActivityPaidBinding, PaidViewModel>() {
+
+    override fun initViews() {
+
+    }
+
+    override fun initListener() {
+
+    }
+
+    override fun initData() {
+
+    }
+}

+ 11 - 0
healthconsultation/src/main/java/com/yingyang/healthconsultation/paid/PaidViewModel.kt

@@ -0,0 +1,11 @@
+package com.yingyang.healthconsultation.paid
+
+import com.yingyangfly.baselib.mvvm.BaseViewModel
+
+/**
+ * @author 王鹏鹏
+ */
+class PaidViewModel : BaseViewModel() {
+
+
+}

+ 10 - 0
healthconsultation/src/main/res/drawable/bg_image_upload_selector.xml

@@ -0,0 +1,10 @@
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:shape="rectangle"
+    tools:ignore="ResourceName">
+    <!-- rectangle表示为矩形 -->
+    <!-- 填充的颜色 -->
+    <solid android:color="@color/color_FF333333" />
+    <corners android:radius="@dimen/divider_6px" />
+
+</shape>

+ 17 - 0
healthconsultation/src/main/res/drawable/progressbar_color.xml

@@ -0,0 +1,17 @@
+<?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 android:id="@android:id/background">
+        <shape>
+            <solid android:color="@color/color_FF333333" />
+        </shape>
+    </item>
+    <item android:id="@android:id/progress">
+        <clip>
+            <shape>
+                <solid android:color="@color/color_FF4174FF" />
+            </shape>
+        </clip>
+    </item>
+</layer-list>

+ 1 - 0
healthconsultation/src/main/res/layout/activity_consultation_sheet.xml

@@ -194,6 +194,7 @@
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:layout_marginStart="@dimen/divider_37px"
+                        android:layout_marginTop="@dimen/divider_9px"
                         android:layout_marginEnd="@dimen/divider_37px"
                         app:layout_constraintEnd_toEndOf="parent"
                         app:layout_constraintStart_toStartOf="parent"

+ 65 - 0
healthconsultation/src/main/res/layout/activity_paid.xml

@@ -0,0 +1,65 @@
+<?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.core.widget.NestedScrollView
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:background="@mipmap/icon_uniform_background">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="vertical">
+
+            <androidx.constraintlayout.widget.ConstraintLayout
+                android:layout_width="match_parent"
+                android:layout_height="match_parent">
+
+                <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_request"
+                    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.constraintlayout.widget.ConstraintLayout>
+
+
+        </LinearLayout>
+    </androidx.core.widget.NestedScrollView>
+</layout>

+ 9 - 7
healthconsultation/src/main/res/layout/item_image.xml

@@ -1,25 +1,26 @@
 <?xml version="1.0" encoding="utf-8"?>
 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
-    android:layout_width="match_parent"
+    android:layout_width="wrap_content"
     android:layout_height="wrap_content"
+    android:layout_marginTop="@dimen/divider_10px"
     tools:ignore="ResourceName">
 
     <androidx.appcompat.widget.AppCompatImageView
         android:id="@+id/iv_add"
         android:layout_width="@dimen/divider_196px"
         android:layout_height="@dimen/divider_196px"
-        android:layout_marginTop="@dimen/divider_15px"
-        android:layout_marginEnd="@dimen/divider_15px"
-        android:scaleType="center"
+        android:layout_marginTop="@dimen/divider_10px"
+        android:layout_marginEnd="@dimen/divider_10px"
+        android:scaleType="centerCrop"
         android:src="@mipmap/icon_add_pic" />
 
     <androidx.appcompat.widget.AppCompatImageView
         android:id="@+id/img"
         android:layout_width="@dimen/divider_196px"
         android:layout_height="@dimen/divider_196px"
-        android:layout_marginTop="@dimen/divider_15px"
-        android:layout_marginEnd="@dimen/divider_15px"
+        android:layout_marginTop="@dimen/divider_10px"
+        android:layout_marginEnd="@dimen/divider_10px"
         android:scaleType="center" />
 
     <ImageView
@@ -27,6 +28,7 @@
         android:layout_width="@dimen/divider_32px"
         android:layout_height="@dimen/divider_32px"
         android:layout_gravity="right|top"
-        android:src="@mipmap/icon_close"
+        android:src="@mipmap/icon_delect_image"
         tools:ignore="RtlHardcoded" />
+
 </FrameLayout>

BIN
healthconsultation/src/main/res/mipmap-xxhdpi/icon_delect_image.png


BIN
healthconsultation/src/main/res/mipmap-xxhdpi/icon_imgreload.png


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

@@ -22,4 +22,5 @@
     <color name="color_FFE2E2E2" tools:ignore="ResourceName">#FFE2E2E2</color>
     <color name="color_FFFF922F" tools:ignore="ResourceName">#FFFF922F</color>
     <color name="color_FF2A55FF" tools:ignore="ResourceName">#FF2A55FF</color>
+    <color name="color_1890FF" tools:ignore="ResourceName">#1890FF</color>
 </resources>