浏览代码

1.添加医生搜索功能

王鹏鹏 2 年之前
父节点
当前提交
81611a1db0
共有 21 个文件被更改,包括 432 次插入10 次删除
  1. 10 0
      .idea/misc.xml
  2. 3 3
      baselib/build.gradle
  3. 2 2
      healthconsultation/src/main/java/com/yingyang/healthconsultation/activity/HealthConsultationActivity.kt
  4. 0 4
      healthconsultation/src/main/java/com/yingyang/healthconsultation/consultationsheet/ConsultationSheetActivity.kt
  5. 99 0
      healthconsultation/src/main/java/com/yingyang/healthconsultation/dialog/EvaluateDialog.kt
  6. 8 0
      healthconsultation/src/main/java/com/yingyang/healthconsultation/entity/EvaluateBean.kt
  7. 10 0
      healthconsultation/src/main/java/com/yingyang/healthconsultation/net/HealthConsultationsApiService.kt
  8. 14 0
      healthconsultation/src/main/java/com/yingyang/healthconsultation/record/ConsultationRecordViewModel.kt
  9. 110 0
      healthconsultation/src/main/java/com/yingyang/healthconsultation/widget/RatingBar.java
  10. 8 0
      healthconsultation/src/main/res/drawable/bg_cancel_evaluation.xml
  11. 18 0
      healthconsultation/src/main/res/drawable/bg_confirm_evaluation.xml
  12. 15 0
      healthconsultation/src/main/res/drawable/layer_rating_bar.xml
  13. 7 0
      healthconsultation/src/main/res/drawable/selector_mark_rate.xml
  14. 98 0
      healthconsultation/src/main/res/layout/dialog_evaluate.xml
  15. 二进制
      healthconsultation/src/main/res/mipmap-xxhdpi/icon_star_selected.png
  16. 二进制
      healthconsultation/src/main/res/mipmap-xxhdpi/icon_star_unselected.png
  17. 8 0
      healthconsultation/src/main/res/values/attrs.xml
  18. 3 0
      healthconsultation/src/main/res/values/colors.xml
  19. 2 1
      healthconsultation/src/main/res/values/dimens.xml
  20. 4 0
      healthconsultation/src/main/res/values/strings.xml
  21. 13 0
      healthconsultation/src/main/res/values/styles.xml

+ 10 - 0
.idea/misc.xml

@@ -40,8 +40,10 @@
         <entry key="..\:/workspace/hcp-pad/healthconsultation/src/main/res/drawable/bg_btn_doctor_details.xml" value="0.155" />
         <entry key="..\:/workspace/hcp-pad/healthconsultation/src/main/res/drawable/bg_button_submit.xml" value="0.161" />
         <entry key="..\:/workspace/hcp-pad/healthconsultation/src/main/res/drawable/bg_button_submitl.xml" value="0.155" />
+        <entry key="..\:/workspace/hcp-pad/healthconsultation/src/main/res/drawable/bg_cancel_evaluation.xml" value="0.1615" />
         <entry key="..\:/workspace/hcp-pad/healthconsultation/src/main/res/drawable/bg_cancel_order.xml" value="0.155" />
         <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_confirm_evaluation.xml" value="0.1615" />
         <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_contact_doctor.xml" value="0.155" />
@@ -71,12 +73,16 @@
         <entry key="..\:/workspace/hcp-pad/healthconsultation/src/main/res/drawable/bg_sick_item.xml" value="0.155" />
         <entry key="..\:/workspace/hcp-pad/healthconsultation/src/main/res/drawable/bg_sick_selected.xml" value="0.155" />
         <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_star.xml" value="0.1615" />
         <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_hospital.xml" value="0.1615" />
         <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/layer_rating_bar.xml" value="0.1615" />
         <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" />
+        <entry key="..\:/workspace/hcp-pad/healthconsultation/src/main/res/drawable/selector_mark_rate.xml" value="0.1615" />
         <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.6075036075036075" />
@@ -87,6 +93,7 @@
         <entry key="..\:/workspace/hcp-pad/healthconsultation/src/main/res/layout/activity_paid.xml" value="0.5371900826446281" />
         <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/activity_search_doctor.xml" value="0.4" />
+        <entry key="..\:/workspace/hcp-pad/healthconsultation/src/main/res/layout/dialog_evaluate.xml" value="0.8" />
         <entry key="..\:/workspace/hcp-pad/healthconsultation/src/main/res/layout/dialog_payment_qr_code.xml" value="0.176" />
         <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" />
@@ -137,6 +144,7 @@
         <entry key="..\:/workspace/hcp-pad/home/src/main/res/layout/layout_play_with_blue_porpoise.xml" value="0.136" />
         <entry key="..\:/workspace/hcp-pad/home/src/main/res/layout/layout_play_with_blue_porpoises.xml" value="0.1" />
         <entry key="..\:/workspace/hcp-pad/home/src/main/res/layout/layout_professional_evaluations.xml" value="0.1" />
+        <entry key="..\:/workspace/hcp-pad/imageselector/src/main/res/drawable/btn_back_selector.xml" value="0.1615" />
         <entry key="..\:/workspace/hcp-pad/imageselector/src/main/res/drawable/btn_green_shape.xml" value="0.155" />
         <entry key="..\:/workspace/hcp-pad/imageselector/src/main/res/layout/activity_clip_image.xml" value="0.23697916666666666" />
         <entry key="..\:/workspace/hcp-pad/imageselector/src/main/res/layout/activity_image_select.xml" value="0.23697916666666666" />
@@ -269,6 +277,7 @@
         <entry key="..\:/workspace/hcp-pad/tuichat/src/main/res-minimalistui/layout/chat_minimalist_pop_menu_layout.xml" value="0.23697916666666666" />
         <entry key="..\:/workspace/hcp-pad/tuichat/src/main/res/drawable/action_audio_selector.xml" value="0.155" />
         <entry key="..\:/workspace/hcp-pad/tuichat/src/main/res/drawable/action_more_selector.xml" value="0.155" />
+        <entry key="..\:/workspace/hcp-pad/tuichat/src/main/res/drawable/layer_live_rating_bar.xml" value="0.1615" />
         <entry key="..\:/workspace/hcp-pad/tuichat/src/main/res/drawable/message_send_border.xml" value="0.155" />
         <entry key="..\:/workspace/hcp-pad/tuichat/src/main/res/drawable/msg_editor_border.xml" value="0.155" />
         <entry key="..\:/workspace/hcp-pad/tuichat/src/main/res/drawable/my_cursor.xml" value="0.155" />
@@ -281,6 +290,7 @@
         <entry key="..\:/workspace/hcp-pad/tuichat/src/main/res/layout/chat_menu_recent_face_item_layout.xml" value="0.23697916666666666" />
         <entry key="..\:/workspace/hcp-pad/tuichat/src/main/res/layout/chat_pop_menu_item_layout.xml" value="0.23697916666666666" />
         <entry key="..\:/workspace/hcp-pad/tuichat/src/main/res/layout/chat_pop_menu_layout.xml" value="0.264" />
+        <entry key="..\:/workspace/hcp-pad/tuichat/src/main/res/layout/custom_evaluation_message_layout.xml" value="0.23697916666666666" />
         <entry key="..\:/workspace/hcp-pad/tuichat/src/main/res/layout/reply_preview_layout.xml" value="0.536" />
         <entry key="..\:/workspace/hcp-pad/tuigift/src/main/res/drawable/tuigift_bg_bottom_dialog.xml" value="0.2265" />
         <entry key="..\:/workspace/hcp-pad/webview/src/main/res/layout/activity_bridge_web.xml" value="0.22826086956521738" />

+ 3 - 3
baselib/build.gradle

@@ -40,7 +40,7 @@ android {
             buildConfigField "String", "BAIDU_SECRETKEY", "\"41Fzb2ZIuKRGNtrVcQOHxEI3vFM4Rkxi\""
             buildConfigField "Boolean", "SINGLE_MODULE", "${singleModule}"
             buildConfigField "String", "BUGLY_APPID", "\"d400f20398\""
-            buildConfigField "String", "API_URL", "\"http://60.205.201.7:8110\""
+            buildConfigField "String", "API_URL", "\"http://60.205.201.7:9110\""
             proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
         }
 
@@ -54,7 +54,7 @@ android {
             buildConfigField "String", "BAIDU_SECRETKEY", "\"41Fzb2ZIuKRGNtrVcQOHxEI3vFM4Rkxi\""
             buildConfigField "Boolean", "SINGLE_MODULE", "${singleModule}"
             buildConfigField "String", "BUGLY_APPID", "\"ad3db4d529\""
-            buildConfigField "String", "API_URL", "\"http://60.205.201.7:8110\""
+            buildConfigField "String", "API_URL", "\"http://60.205.201.7:9110\""
             proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
         }
     }
@@ -140,6 +140,6 @@ dependencies {
     api(rootProject.ext.dependencies.fastjson)
     api(rootProject.ext.dependencies.Luban)
     api(rootProject.ext.dependencies.xxPermission)
-    api(rootProject.ext.dependencies.imageSelector)
+//    api(rootProject.ext.dependencies.imageSelector)
 
 }

+ 2 - 2
healthconsultation/src/main/java/com/yingyang/healthconsultation/activity/HealthConsultationActivity.kt

@@ -180,7 +180,7 @@ class HealthConsultationActivity :
     }
 
     /**
-     * 登录IM
+     * 获取密钥
      */
     private fun getUserSign(bean: DoctorBean) {
         viewModel.getUserSign(User.getUserId(), fail = {
@@ -195,7 +195,7 @@ class HealthConsultationActivity :
     }
 
     /**
-     *
+     * 登录IM
      */
     private fun loginIM(sign: String, bean: DoctorBean) {
         TUILogin.login(mContext, AccountConfig.TENCENT_IM_APPID, User.getUserId(), sign, object :

+ 0 - 4
healthconsultation/src/main/java/com/yingyang/healthconsultation/consultationsheet/ConsultationSheetActivity.kt

@@ -410,10 +410,6 @@ class ConsultationSheetActivity :
             "请选择此次病情是否去医院就诊过".toast()
             return false
         }
-        if (getImgRemotePathPaths().isEmpty()) {
-            "请上传病历资料".toast()
-            return false
-        }
         if (binding.agreementBox.isChecked.not()) {
             "请您阅读相关协议及隐私政策".toast()
             return false

+ 99 - 0
healthconsultation/src/main/java/com/yingyang/healthconsultation/dialog/EvaluateDialog.kt

@@ -0,0 +1,99 @@
+package com.yingyang.healthconsultation.dialog
+
+import android.os.Bundle
+import android.util.Log
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.appcompat.widget.AppCompatButton
+import androidx.appcompat.widget.AppCompatRatingBar
+import androidx.fragment.app.DialogFragment
+import com.gyf.immersionbar.BarHide
+import com.gyf.immersionbar.ktx.immersionBar
+import com.yingyang.healthconsultation.R
+import com.yingyang.healthconsultation.entity.EvaluateBean
+import com.yingyang.healthconsultation.net.HealthConsultationsServiceFactory
+import com.yingyangfly.baselib.ext.setOnSingleClickListener
+import com.yingyangfly.baselib.ext.toast
+import com.yingyangfly.baselib.net.BaseObserver
+import com.yingyangfly.baselib.net.MyRxScheduler
+import com.yingyangfly.baselib.net.XUtils
+import com.yingyangfly.baselib.utils.GsonUtil
+import com.yingyangfly.baselib.utils.ViewTool
+import io.reactivex.schedulers.Schedulers
+
+/**
+ * 评价弹窗
+ */
+class EvaluateDialog : DialogFragment() {
+
+    private var btnCancle: AppCompatButton? = null
+    private var btnConform: AppCompatButton? = null
+    private var ratingBar: AppCompatRatingBar? = null
+
+    override fun onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+        isCancelable = false
+        dialog?.setCanceledOnTouchOutside(true)
+    }
+
+    override fun onStart() {
+        super.onStart()
+        dialog?.window?.setLayout(
+            ViewGroup.LayoutParams.MATCH_PARENT,
+            ViewGroup.LayoutParams.MATCH_PARENT
+        )
+        dialog?.window?.setBackgroundDrawableResource(R.color.transparent)
+    }
+
+    override fun onCreateView(
+        inflater: LayoutInflater,
+        container: ViewGroup?,
+        savedInstanceState: Bundle?
+    ): View? {
+        immersionBar {
+            hideBar(BarHide.FLAG_HIDE_BAR)
+            navigationBarColor(R.color.transparent)
+        }
+        val rootView = ViewTool.inflateFragmentPixels(
+            activity, R.layout.dialog_evaluate, container, 1194, 834
+        )
+        findId(rootView)
+        init()
+        return rootView
+    }
+
+    private fun findId(rootView: View) {
+        ratingBar = rootView.findViewById(R.id.ratingBar)
+        btnCancle = rootView.findViewById(R.id.btnCancle)
+        btnConform = rootView.findViewById(R.id.btnConform)
+    }
+
+    private fun init() {
+        btnCancle?.setOnSingleClickListener {
+            dismiss()
+        }
+
+        btnConform?.setOnSingleClickListener {
+            val score = ratingBar?.rating?.toInt()
+            val requestBean = EvaluateBean().apply {
+                value = score.toString()
+            }
+            val body = XUtils.createJson(GsonUtil.GsonString(requestBean))
+            HealthConsultationsServiceFactory.getService()
+                .addPatientReview(body)
+                .subscribeOn(Schedulers.io())
+                .compose(MyRxScheduler.ioMain(activity, true))
+                .subscribe(object : BaseObserver<String>() {
+                    override fun onSuccess(t: String?) {
+                        "打分成功".toast()
+                        dismiss()
+                    }
+
+                    override fun onFail(msg: String) {
+                        msg.toast()
+                    }
+                })
+        }
+    }
+}

+ 8 - 0
healthconsultation/src/main/java/com/yingyang/healthconsultation/entity/EvaluateBean.kt

@@ -0,0 +1,8 @@
+package com.yingyang.healthconsultation.entity
+
+/**
+ * 新增评价
+ */
+class EvaluateBean {
+    var value: String = ""
+}

+ 10 - 0
healthconsultation/src/main/java/com/yingyang/healthconsultation/net/HealthConsultationsApiService.kt

@@ -2,6 +2,8 @@ package com.yingyang.healthconsultation.net
 
 import com.yingyangfly.baselib.net.XBaseEntity
 import io.reactivex.Observable
+import okhttp3.RequestBody
+import retrofit2.http.Body
 import retrofit2.http.POST
 import retrofit2.http.Query
 
@@ -27,4 +29,12 @@ interface HealthConsultationsApiService {
     fun getSelectPayResult(
         @Query("orderNo") orderNo: String
     ): Observable<XBaseEntity<String>>
+
+    /**
+     * 新增评价
+     */
+    @POST("patient_review/save")
+    fun addPatientReview(
+        @Body requestBody: RequestBody
+    ): Observable<XBaseEntity<String>>
 }

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

@@ -52,4 +52,18 @@ class ConsultationRecordViewModel : BaseViewModel() {
         success,
         fail
     )
+
+    /**
+     * 获取腾讯IM密钥
+     */
+    fun getUserSign(
+        id: String,
+        fail: ((msg: String) -> Unit)? = null,
+        success: ((success: String?) -> Unit)? = null,
+    ) = launchFlow(true) {
+        HEALTHCONSULTATION_API.getUserSign(id)
+    }.runUI(
+        success,
+        fail
+    )
 }

+ 110 - 0
healthconsultation/src/main/java/com/yingyang/healthconsultation/widget/RatingBar.java

@@ -0,0 +1,110 @@
+package com.yingyang.healthconsultation.widget;
+
+import android.annotation.SuppressLint;
+import android.content.Context;
+import android.content.res.TypedArray;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.graphics.Canvas;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.view.MotionEvent;
+import android.view.View;
+
+import com.yingyang.healthconsultation.R;
+
+/**
+ * Email 240336124@qq.com
+ * Created by Darren on 2017/5/31.
+ * Version 1.0
+ * Description:
+ */
+public class RatingBar extends View {
+    private static final String TAG = "RatingBar";
+
+    private Bitmap mStarNormalBitmap, mStarFocusBitmap;
+    private int mGradeNumber = 5;
+
+    private int mCurrentGrade = 0;
+
+    public RatingBar(Context context) {
+        this(context, null);
+    }
+
+    public RatingBar(Context context, AttributeSet attrs) {
+        this(context, attrs, 0);
+    }
+
+    public RatingBar(Context context, AttributeSet attrs, int defStyleAttr) {
+        super(context, attrs, defStyleAttr);
+        TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.RatingBar);
+        int starNormalId = array.getResourceId(R.styleable.RatingBar_starNormal, 0);
+        if (starNormalId == 0) {
+            throw new RuntimeException("请设置属性 starNormal ");
+        }
+        mStarNormalBitmap = BitmapFactory.decodeResource(getResources(), starNormalId);
+        int starFocusId = array.getResourceId(R.styleable.RatingBar_starFocus, 0);
+        if (starFocusId == 0) {
+            throw new RuntimeException("请设置属性 starFocus ");
+        }
+        mStarFocusBitmap = BitmapFactory.decodeResource(getResources(), starFocusId);
+        mGradeNumber = array.getInt(R.styleable.RatingBar_gradeNumber, mGradeNumber);
+        array.recycle();
+    }
+
+    @Override
+    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
+        // 高度  一张图片的高度, 自己去实现 padding  + 加上间隔
+        int height = mStarFocusBitmap.getHeight();
+        int width = mStarFocusBitmap.getWidth() * mGradeNumber;
+        setMeasuredDimension(width, height);
+    }
+
+    @Override
+    protected void onDraw(Canvas canvas) {
+        for (int i = 0; i < mGradeNumber; i++) {
+            // i*星星的宽度
+            int x = i * mStarFocusBitmap.getWidth();
+            // 结合第二个步骤 触摸的时候mCurrentGrade值是不断变化
+            if (mCurrentGrade > i) {
+                // 1  01
+                // 当前分数之前
+                canvas.drawBitmap(mStarFocusBitmap, x, 0, null);
+            } else {
+                canvas.drawBitmap(mStarNormalBitmap, x, 0, null);
+            }
+        }
+    }
+
+
+    @SuppressLint("ClickableViewAccessibility")
+    @Override
+    public boolean onTouchEvent(MotionEvent event) {
+        // 移动 按下 抬起 处理逻辑都是一样,判断手指的位置,根据当前位置计算出分数,再去刷新显示
+        Log.e(TAG, "moveXE -> " + event.getAction() + "");
+        // case MotionEvent.ACTION_DOWN: // 按下 尽量减少onDraw()的调用
+        if (event.getAction() == MotionEvent.ACTION_MOVE) { // 移动
+            // case MotionEvent.ACTION_UP: // 抬起 尽量减少onDraw()的调用
+            float moveX = event.getX();//event.getX()相对于当前控件的位置   event.getRawX()获取幕的x位置
+            // Log.e(TAG, "moveX -> " + moveX +"");
+            // 计算分数
+            int currentGrade = (int) (moveX / mStarFocusBitmap.getWidth() + 1);
+            // 范围问题
+            if (currentGrade < 0) {
+                currentGrade = 0;
+            }
+            if (currentGrade > mGradeNumber) {
+                currentGrade = mGradeNumber;
+            }
+            // 分数相同的情况下不要绘制了 , 尽量减少onDraw()的调用
+            if (currentGrade == mCurrentGrade) {
+                return true;
+            }
+            // 再去刷新显示
+            mCurrentGrade = currentGrade;
+            invalidate();// onDraw()  尽量减少onDraw()的调用,目前是不断调用,怎么减少?
+        }
+        return true;// onTouch 后面看源码(2天,3个小时) false 不消费 第一次 DOWN false DOWN以后的事件是进不来的
+    }
+}

+ 8 - 0
healthconsultation/src/main/res/drawable/bg_cancel_evaluation.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    tools:ignore="ResourceName">
+    <corners android:radius="@dimen/divider_13px" />
+    <stroke android:color="@color/color_FF054DFF" android:width="@dimen/divider_1px"/>
+    <solid android:color="@android:color/white" />
+</shape>

+ 18 - 0
healthconsultation/src/main/res/drawable/bg_confirm_evaluation.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>

+ 15 - 0
healthconsultation/src/main/res/drawable/layer_rating_bar.xml

@@ -0,0 +1,15 @@
+<?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"
+        android:drawable="@mipmap/icon_star_unselected" />
+    <item
+        android:id="@android:id/secondaryProgress"
+        android:drawable="@mipmap/icon_star_unselected" />
+    <item
+        android:id="@android:id/progress"
+        android:drawable="@mipmap/icon_star_selected" />
+
+</layer-list>

+ 7 - 0
healthconsultation/src/main/res/drawable/selector_mark_rate.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingDefaultResource,ResourceName">
+    <item android:drawable="@mipmap/icon_star_unselected" android:state_checked="true" />
+    <item android:drawable="@mipmap/icon_star_unselected" android:state_selected="true" />
+    <item android:drawable="@mipmap/icon_star_selected" android:state_checked="false" />
+    <item android:drawable="@mipmap/icon_star_selected" android:state_selected="false" />
+</selector>

+ 98 - 0
healthconsultation/src/main/res/layout/dialog_evaluate.xml

@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout 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"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:ignore="ResourceName">
+
+    <com.google.android.material.card.MaterialCardView
+        android:layout_width="@dimen/divider_502px"
+        android:layout_height="wrap_content"
+        android:minHeight="@dimen/divider_329px"
+        android:theme="@style/Theme.MaterialComponents.NoActionBar"
+        app:cardBackgroundColor="@android:color/white"
+        app:cardCornerRadius="@dimen/divider_20px"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent">
+
+        <androidx.constraintlayout.widget.ConstraintLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent">
+
+            <androidx.appcompat.widget.AppCompatTextView
+                android:id="@+id/tvTitle"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/divider_45px"
+                android:gravity="center"
+                android:text="@string/please_rate_this_interview"
+                android:textColor="@color/color_FF333333"
+                android:textSize="@dimen/divider_28px"
+                android:textStyle="bold"
+                app:layout_constraintEnd_toEndOf="parent"
+                app:layout_constraintStart_toStartOf="parent"
+                app:layout_constraintTop_toTopOf="parent" />
+
+            <TextView
+                android:id="@+id/tvMark"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginStart="@dimen/divider_112px"
+                android:layout_marginTop="@dimen/divider_45px"
+                android:text="@string/mark"
+                android:textColor="@color/color_FF222222"
+                android:textSize="@dimen/divider_24px"
+                app:layout_constraintStart_toStartOf="parent"
+                app:layout_constraintTop_toBottomOf="@+id/tvTitle" />
+
+            <androidx.appcompat.widget.AppCompatRatingBar
+                android:id="@+id/ratingBar"
+                style="@style/RadingStyle"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center_vertical"
+                android:layout_marginStart="@dimen/divider_32px"
+                android:layout_marginTop="@dimen/divider_43px"
+                android:numStars="5"
+                android:stepSize="20.0"
+                app:layout_constraintStart_toEndOf="@+id/tvMark"
+                app:layout_constraintTop_toBottomOf="@+id/tvTitle"
+                tools:ignore="UnusedAttribute" />
+
+            <androidx.appcompat.widget.AppCompatButton
+                android:id="@+id/btnCancle"
+                android:layout_width="@dimen/divider_180px"
+                android:layout_height="@dimen/divider_59px"
+                android:layout_marginStart="@dimen/divider_50px"
+                android:layout_marginTop="@dimen/divider_63px"
+                android:background="@drawable/bg_cancel_evaluation"
+                android:gravity="center"
+                android:text="@string/cancel"
+                android:textColor="@color/color_FF4D7EFF"
+                android:textSize="@dimen/divider_24px"
+                app:layout_constraintStart_toStartOf="parent"
+                app:layout_constraintTop_toBottomOf="@+id/tvMark" />
+
+            <androidx.appcompat.widget.AppCompatButton
+                android:id="@+id/btnConform"
+                android:layout_width="@dimen/divider_180px"
+                android:layout_height="@dimen/divider_59px"
+                android:layout_marginStart="@dimen/divider_42px"
+                android:layout_marginTop="@dimen/divider_63px"
+                android:background="@drawable/bg_confirm_evaluation"
+                android:gravity="center"
+                android:text="@string/complete"
+                android:textColor="@android:color/white"
+                android:textSize="@dimen/divider_24px"
+                app:layout_constraintStart_toEndOf="@+id/btnCancle"
+                app:layout_constraintTop_toBottomOf="@+id/tvMark" />
+
+        </androidx.constraintlayout.widget.ConstraintLayout>
+
+
+    </com.google.android.material.card.MaterialCardView>
+
+</androidx.constraintlayout.widget.ConstraintLayout>

二进制
healthconsultation/src/main/res/mipmap-xxhdpi/icon_star_selected.png


二进制
healthconsultation/src/main/res/mipmap-xxhdpi/icon_star_unselected.png


+ 8 - 0
healthconsultation/src/main/res/values/attrs.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:tools="http://schemas.android.com/tools">
+    <declare-styleable name="RatingBar" tools:ignore="ResourceName">
+        <attr name="starNormal" format="reference"/>
+        <attr name="starFocus" format="reference"/>
+        <attr name="gradeNumber" format="integer"/>
+    </declare-styleable>
+</resources>

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

@@ -32,4 +32,7 @@
     <color name="color_FFFFA535" tools:ignore="ResourceName">#FFFFA535</color>
     <color name="color_FFFFFF" tools:ignore="ResourceName">#FFFFFF</color>
     <color name="color_FFD5D5D5" tools:ignore="ResourceName">#FFD5D5D5</color>
+    <color name="color_FF222222" tools:ignore="ResourceName">#FF222222</color>
+    <color name="color_FFD2D0C9" tools:ignore="ResourceName">#FFD2D0C9</color>
+    <color name="color_FFFFA81A" tools:ignore="ResourceName">#FFFFA81A</color>
 </resources>

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

@@ -4,7 +4,7 @@
     <dimen name="divider_834px" tools:ignore="ResourceName">834px</dimen>
     <dimen name="divider_763px" tools:ignore="ResourceName">763px</dimen>
     <dimen name="divider_747px" tools:ignore="ResourceName">747px</dimen>
-    <dimen name="divider_693px" tools:ignore="ResourceName">93px</dimen>
+    <dimen name="divider_693px" tools:ignore="ResourceName">693px</dimen>
     <dimen name="divider_689px" tools:ignore="ResourceName">689px</dimen>
     <dimen name="divider_684px" tools:ignore="ResourceName">684px</dimen>
     <dimen name="divider_645px" tools:ignore="ResourceName">645px</dimen>
@@ -14,6 +14,7 @@
     <dimen name="divider_533px" tools:ignore="ResourceName">533px</dimen>
     <dimen name="divider_525px" tools:ignore="ResourceName">525px</dimen>
     <dimen name="divider_503px" tools:ignore="ResourceName">503px</dimen>
+    <dimen name="divider_502px" tools:ignore="ResourceName">502px</dimen>
     <dimen name="divider_472px" tools:ignore="ResourceName">472px</dimen>
     <dimen name="divider_445px" tools:ignore="ResourceName">445px</dimen>
     <dimen name="divider_443px" tools:ignore="ResourceName">443px</dimen>

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

@@ -56,4 +56,8 @@
     <string name="view_all" tools:ignore="ResourceName">查看全部</string>
     <string name="please_input_doctors_name" translatable="false" tools:ignore="ResourceName">请输入医生姓名</string>
     <string name="search" tools:ignore="ResourceName">搜索</string>
+    <string name="please_rate_this_interview" tools:ignore="ResourceName">请为本次问诊打分</string>
+    <string name="mark" tools:ignore="ResourceName">评分</string>
+    <string name="cancel" tools:ignore="ResourceName">取消</string>
+    <string name="complete" tools:ignore="ResourceName">完成</string>
 </resources>

+ 13 - 0
healthconsultation/src/main/res/values/styles.xml

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools">
+
+    <style name="RadingStyle" parent="@android:style/Widget.RatingBar" tools:ignore="ResourceName">
+        <!-- 定义星星图片 -->
+        <item name="android:progressDrawable">@drawable/layer_rating_bar</item>
+        <!-- 根据自定义星星图片的大小,设置相应的值,否则可能显示不全 -->
+        <item name="android:numColumns">5</item>
+        <item name="android:minHeight">@dimen/divider_41px</item>
+        <item name="android:maxHeight">@dimen/divider_41px</item>
+    </style>
+
+</resources>