18034727885
2026-06-25 4df68c05a00c3eb6be9a8315828b76c008371cbe
修复问题
1个文件已添加
4个文件已修改
129 ■■■■■ 已修改文件
app/src/main/java/com/xw/yunwei/ui/work/car/detail/management/report/CarReportActivity.kt 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/xw/yunwei/ui/work/checkInMission/RoutePlanningActivity.kt 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/activity_car_report.xml 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/item_pdf_entrance.xml 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
common/src/main/java/com/xw/common/utils/BindUtils.kt 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/xw/yunwei/ui/work/car/detail/management/report/CarReportActivity.kt
@@ -1,11 +1,13 @@
package com.xw.yunwei.ui.work.car.detail.management.report
import android.view.Gravity
import androidx.core.view.isVisible
import android.view.View
import android.widget.TextView
import com.xw.common.CommonDialog
import com.xw.common.PdfViewDialog
import com.xw.common.utils.BindUtils.getResColor
import com.xw.common.utils.BindUtils.getUrls
import com.xw.common.utils.BindUtils.getValueList
import com.xw.yunwei.BR
import com.xw.yunwei.BaseBusinessActivity
import com.xw.yunwei.R
@@ -25,8 +27,7 @@
    override fun setObservable() {
        super.setObservable()
        viewModel.carReportModel.observe(this) {
            binding.llNotice.isVisible=false
        viewModel.carReportModel.observe(this) { it ->
            when (it.status) {
                // 保单申请状态 0 = 待申请 1 = 待审核 2 = 已通过 3 = 已驳回
                0 -> {
@@ -38,7 +39,6 @@
                }
                1 -> {
                    binding.llNotice.isVisible = true
                    binding.tips1.setTextColor(getResColor(com.xw.common.R.color.gray_7))
                    binding.tips2.setTextColor(getResColor(com.xw.common.R.color.blue_5))
                    binding.tips3.setTextColor(getResColor(com.xw.common.R.color.gray_7))
@@ -62,6 +62,26 @@
                    binding.img.setImageResource(R.mipmap.img_car_report1)
                }
            }
            binding.llPdf.removeAllViews()
            it.xpPolicyApplicationVO?.policyInformation?.also { it ->
                val urls = it.getUrls()
                val names = it.getValueList("name")
                urls.forEachIndexed { index, url ->
                    val view = View.inflate(this, R.layout.item_pdf_entrance, null).apply {
                        findViewById<TextView>(R.id.tv_name).apply {
                            text = names[index]
                        }
                        setOnClickListener {
                            PdfViewDialog().show(
                                supportFragmentManager,
                                "PDF_VIEW",
                                url = url
                            )
                        }
                    }
                    binding.llPdf.addView(view)
                }
            }
        }
    }
app/src/main/java/com/xw/yunwei/ui/work/checkInMission/RoutePlanningActivity.kt
@@ -318,9 +318,6 @@
                    it.removeAMapNaviListener(this)
                    super.onCalculateRouteFailure(p0)
                    Log.d(TAG, "步行路线计算失败,$p0")
                    if (viewModel.naviPaths.value?.get(0) != null) {
                        return
                    }
                    val map = viewModel.naviPaths.value ?: mutableMapOf()
                    map[0] = RoutePlanningOperationInfo(0, passingPoints, routePlanningEndPoint)
                    viewModel.naviPaths.postValue(map.toMutableMap())
@@ -378,6 +375,7 @@
                    val info = RoutePlanningOperationInfo(1, passingPoints, routePlanningEndPoint)
                    val map = viewModel.naviPaths.value ?: mutableMapOf()
                    map[1] = info
                    viewModel.naviPaths.postValue(map.toMutableMap())
                    block.invoke()
                }
            }
app/src/main/res/layout/activity_car_report.xml
@@ -50,21 +50,21 @@
            <androidx.appcompat.widget.AppCompatImageView
                android:id="@+id/icon1"
                src="@{viewModel.icon1}"
                android:layout_width="@dimen/dp_16"
                android:layout_height="@dimen/dp_16"
                android:layout_marginStart="@dimen/dp_68"
                android:layout_marginTop="@dimen/dp_16"
                src="@{viewModel.icon1}"
                app:layout_constraintLeft_toLeftOf="parent"
                app:layout_constraintTop_toTopOf="parent"
                tools:src="@drawable/svg_time2" />
            <androidx.appcompat.widget.AppCompatImageView
                android:id="@+id/line1"
                src="@{viewModel.line1}"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                src="@{viewModel.line1}"
                app:layout_constraintBottom_toBottomOf="@+id/icon1"
                app:layout_constraintLeft_toRightOf="@+id/icon1"
                app:layout_constraintRight_toLeftOf="@+id/icon2"
@@ -73,10 +73,10 @@
            <androidx.appcompat.widget.AppCompatImageView
                android:id="@+id/icon2"
                src="@{viewModel.icon2}"
                android:layout_width="@dimen/dp_16"
                android:layout_height="@dimen/dp_16"
                android:layout_marginTop="@dimen/dp_16"
                src="@{viewModel.icon2}"
                app:layout_constraintLeft_toLeftOf="parent"
                app:layout_constraintRight_toRightOf="parent"
                app:layout_constraintTop_toTopOf="parent"
@@ -84,10 +84,10 @@
            <androidx.appcompat.widget.AppCompatImageView
                android:id="@+id/line2"
                src="@{viewModel.line2}"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                src="@{viewModel.line2}"
                app:layout_constraintBottom_toBottomOf="@+id/icon1"
                app:layout_constraintLeft_toRightOf="@+id/icon2"
                app:layout_constraintRight_toLeftOf="@+id/icon3"
@@ -96,11 +96,11 @@
            <androidx.appcompat.widget.AppCompatImageView
                android:id="@+id/icon3"
                src="@{viewModel.icon3}"
                android:layout_width="@dimen/dp_16"
                android:layout_height="@dimen/dp_16"
                android:layout_marginTop="@dimen/dp_16"
                android:layout_marginEnd="@dimen/dp_68"
                src="@{viewModel.icon3}"
                app:layout_constraintRight_toRightOf="parent"
                app:layout_constraintTop_toTopOf="parent"
                tools:src="@drawable/svg_circle" />
@@ -149,12 +149,19 @@
        </androidx.constraintlayout.widget.ConstraintLayout>
        <View
            android:id="@+id/v_line"
            android:layout_width="match_parent"
            android:layout_height="1px"
            android:background="@color/gray_4"
            app:layout_constraintTop_toBottomOf="@id/layout" />
        <ScrollView
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_marginBottom="@dimen/dp_24"
            app:layout_constraintBottom_toTopOf="@+id/viewPdf"
            app:layout_constraintTop_toBottomOf="@+id/layout">
            app:layout_constraintTop_toBottomOf="@+id/v_line">
            <RelativeLayout
                android:layout_width="match_parent"
@@ -165,13 +172,14 @@
                <LinearLayout
                    android:id="@+id/ll_notice"
                    show="@{viewModel.carReportModel.status == 1}"
                    android:layout_width="match_parent"
                    android:layout_height="@dimen/dp_40"
                    android:background="@color/color_e0ebf7"
                    android:gravity="center"
                    android:orientation="horizontal"
                    android:visibility="gone"
                    tools:visibility="visible"
                    android:orientation="horizontal">
                    tools:visibility="visible">
                    <ImageView
                        android:layout_width="@dimen/dp_12"
@@ -187,22 +195,32 @@
                        android:textSize="@dimen/sp_12" />
                </LinearLayout>
                <androidx.appcompat.widget.AppCompatImageView
                    android:id="@+id/img"
                <LinearLayout
                    android:id="@+id/ll_pdf"
                    show="@{viewModel.carReportModel.status == 2}"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_below="@id/ll_notice"
                    android:layout_marginHorizontal="@dimen/dp_20"
                    android:orientation="vertical" />
                <androidx.appcompat.widget.AppCompatImageView
                    android:id="@+id/img"
                    show="@{viewModel.carReportModel.status != 2}"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_below="@id/ll_notice"
                    android:layout_margin="@dimen/dp_12"
                    android:adjustViewBounds="true"
                    android:layout_below="@id/ll_notice"
                    android:src="@mipmap/img_car_report1" />
                <com.google.android.material.button.MaterialButton
                    android:id="@+id/apply"
                    show="@{viewModel.carReportModel.status == 0}"
                    android:layout_width="@dimen/dp_200"
                    android:layout_height="wrap_content"
                    android:layout_centerInParent="true"
                    android:backgroundTint="@color/blue_5"
                    show="@{viewModel.carReportModel.status == 0}"
                    android:text="申请查看"
                    android:textSize="@dimen/sp_16"
                    android:textStyle="bold"
@@ -213,12 +231,12 @@
                    show="@{viewModel.carReportModel.status == 3}"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    tools:visibility="visible"
                    android:layout_centerInParent="true"
                    android:layout_marginHorizontal="@dimen/dp_28"
                    android:background="@drawable/shape_white_bg_4"
                    android:orientation="vertical"
                    android:padding="@dimen/dp_12"
                    android:orientation="vertical">
                    tools:visibility="visible">
                    <androidx.appcompat.widget.AppCompatTextView
                        android:id="@+id/tv"
@@ -237,10 +255,10 @@
                        android:layout_marginTop="@dimen/dp_8"
                        android:lineSpacingMultiplier="1.3"
                        android:text="@{viewModel.carReportModel.xpPolicyApplicationVO.auditRemarks}"
                        tools:text="维修原因描述维修原因描述维修原因描述维修原因描述维修原因描述维修原因描述维修原因描述维修原因描述维修原因描述"
                        android:textColor="@color/gray_9"
                        android:textSize="@dimen/sp_14"
                        android:textStyle="bold" />
                        android:textStyle="bold"
                        tools:text="维修原因描述维修原因描述维修原因描述维修原因描述维修原因描述维修原因描述维修原因描述维修原因描述维修原因描述" />
                    <com.google.android.material.button.MaterialButton
                        android:id="@+id/reapply"
@@ -263,10 +281,10 @@
        </ScrollView>
        <View
            show="@{viewModel.carReportModel.status == 2}"
            android:layout_width="match_parent"
            android:layout_height="1px"
            android:layout_marginBottom="@dimen/dp_12"
            show="@{viewModel.carReportModel.status == 2}"
            android:background="@color/gray_4"
            app:layout_constraintBottom_toTopOf="@+id/viewPdf" />
@@ -275,13 +293,13 @@
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginHorizontal="@dimen/dp_20"
            show="@{viewModel.carReportModel.status == 2}"
            android:layout_marginTop="@dimen/dp_24"
            android:layout_marginBottom="@dimen/dp_12"
            android:backgroundTint="@color/blue_5"
            android:text="查看PDF"
            android:textSize="@dimen/sp_16"
            android:textStyle="bold"
            android:visibility="gone"
            app:cornerRadius="@dimen/dp_4"
            app:layout_constraintBottom_toBottomOf="parent" />
app/src/main/res/layout/item_pdf_entrance.xml
New file
@@ -0,0 +1,36 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="@dimen/dp_56"
        android:gravity="center_vertical">
        <androidx.appcompat.widget.AppCompatTextView
            android:id="@+id/tv_name"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:ellipsize="end"
            android:singleLine="true"
            android:text=""
            android:textColor="@color/gray_9"
            android:textSize="@dimen/sp_14"
            android:textStyle="bold" />
        <androidx.appcompat.widget.AppCompatImageView
            android:layout_width="@dimen/dp_16"
            android:layout_height="@dimen/dp_16"
            android:layout_marginStart="@dimen/dp_10"
            android:src="@mipmap/ic_task_item_arrow_right" />
    </LinearLayout>
    <View
        android:id="@+id/v_line"
        android:layout_width="match_parent"
        android:layout_height="1px"
        android:background="@color/gray_4" />
</LinearLayout>
common/src/main/java/com/xw/common/utils/BindUtils.kt
@@ -136,7 +136,8 @@
//        return urls
//    }
    fun String.getUrls(): List<String> {
    fun String.getUrls() = getValueList("url")
    fun String.getValueList(key: String): List<String> {
        val urls = mutableListOf<String>()
        try {
            val trimmed = this.trim()
@@ -152,7 +153,7 @@
                        is String -> JSONObject(item) // 处理转义的JSON字符串
                        else -> continue
                    }
                    urls.add(jsonObj.optString("url").trim())
                    urls.add(jsonObj.optString(key).trim())
                }
            } else {
                // 单个:JSONObject 或 转义的JSON字符串
@@ -162,7 +163,7 @@
                } else {
                    JSONObject(trimmed)
                }
                urls.add(jsonObj.optString("url").trim())
                urls.add(jsonObj.optString(key).trim())
            }
        } catch (e: Exception) {
            e.printStackTrace()