app/build.gradle.kts
@@ -166,6 +166,7 @@ } dependencies { implementation(libs.androidx.activity.ktx) implementation(fileTree("libs/iflytek") { include("*.jar") }) implementation(libs.androidx.core.ktx) implementation(libs.androidx.appcompat) app/src/main/AndroidManifest.xml
@@ -40,40 +40,43 @@ android:supportsRtl="true" android:theme="@style/Theme.Yunwei"> <activity android:screenOrientation="portrait" android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize" android:name=".ui.common.WebActivity" android:exported="false" /> <activity android:name=".ui.work.checkInMission.CruiseCheckInMissionCompleteActivity" android:exported="false" /> <activity android:screenOrientation="portrait" android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize" android:exported="false" android:screenOrientation="portrait" /> <activity android:name=".ui.work.checkInMission.CruiseCheckInOperationActivity" android:exported="false" /> <activity android:screenOrientation="portrait" android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize" android:exported="false" android:screenOrientation="portrait" /> <activity android:name=".ui.work.checkInMission.CruiseCheckInActivity" android:exported="false" /> <activity android:screenOrientation="portrait" android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize" android:exported="false" android:screenOrientation="portrait" /> <activity android:name=".ui.work.checkInMission.RoutePlanningActivity" android:exported="false" /> <activity android:screenOrientation="portrait" android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize" android:exported="false" android:screenOrientation="portrait" /> <activity android:name=".ui.work.checkInMission.CheckInMissionPointsListActivity" android:exported="false" /> <activity android:screenOrientation="portrait" android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize" android:exported="false" android:screenOrientation="portrait" /> <activity android:name=".ui.work.site.SiteErrorUploadActivity" android:exported="false" /> <activity android:screenOrientation="portrait" android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize" android:exported="false" android:screenOrientation="portrait" /> <activity android:name=".ui.user.login.LoginActivity" android:exported="true"> android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize" android:exported="true" android:screenOrientation="portrait"> <intent-filter> <action android:name="android.intent.action.MAIN" /> @@ -81,166 +84,166 @@ </intent-filter> </activity> <activity android:screenOrientation="portrait" android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize" android:name=".ui.MainActivity" android:launchMode="singleTask" /> <activity android:screenOrientation="portrait" android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize" android:launchMode="singleTask" android:screenOrientation="portrait" /> <activity android:name=".ui.user.login.FindPswActivity" android:launchMode="singleTop" /> <activity android:screenOrientation="portrait" android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize" android:launchMode="singleTop" android:screenOrientation="portrait" /> <activity android:name=".ui.user.mine.info.UserInfoActivity" android:launchMode="singleTop" /> <activity android:screenOrientation="portrait" android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize" android:launchMode="singleTop" android:screenOrientation="portrait" /> <activity android:name=".ui.user.mine.upload.CertUploadActivity" android:launchMode="singleTop" /> <activity android:screenOrientation="portrait" android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize" android:launchMode="singleTop" android:screenOrientation="portrait" /> <activity android:name=".ui.user.mine.set.SetActivity" android:launchMode="singleTop" /> <activity android:screenOrientation="portrait" android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize" android:launchMode="singleTop" android:screenOrientation="portrait" /> <activity android:name=".ui.user.mine.scheduling.SchedulingActivity" android:launchMode="singleTop" /> <activity android:screenOrientation="portrait" android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize" android:launchMode="singleTop" android:screenOrientation="portrait" /> <activity android:name=".ui.user.mine.checkin.CheckInActivity" android:launchMode="singleTop" /> <activity android:screenOrientation="portrait" android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize" android:launchMode="singleTop" android:screenOrientation="portrait" /> <activity android:name=".ui.user.mine.protocol.ProtocolActivity" android:launchMode="singleTop" /> <activity android:screenOrientation="portrait" android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize" android:launchMode="singleTop" android:screenOrientation="portrait" /> <activity android:name=".ui.work.notice.NoticeActivity" android:launchMode="singleTop" /> <activity android:screenOrientation="portrait" android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize" android:launchMode="singleTop" android:screenOrientation="portrait" /> <activity android:name=".ui.work.car.manage.CarManageActivity" android:launchMode="singleTop" /> <activity android:screenOrientation="portrait" android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize" android:launchMode="singleTop" android:screenOrientation="portrait" /> <activity android:name=".ui.work.car.detail.CarDetailActivity" android:launchMode="singleTop" /> <activity android:screenOrientation="portrait" android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize" android:launchMode="singleTop" android:screenOrientation="portrait" /> <activity android:name=".ui.work.car.detail.operations.clean.CleanCarActivity" android:launchMode="singleTop" /> <activity android:screenOrientation="portrait" android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize" android:launchMode="singleTop" android:screenOrientation="portrait" /> <activity android:name=".ui.work.car.detail.operations.clean.CleanCarDetailActivity" android:launchMode="singleTop" /> <activity android:screenOrientation="portrait" android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize" android:launchMode="singleTop" android:screenOrientation="portrait" /> <activity android:name=".ui.work.car.detail.operations.check.CheckCarActivity" android:launchMode="singleTop" /> <activity android:screenOrientation="portrait" android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize" android:launchMode="singleTop" android:screenOrientation="portrait" /> <activity android:name=".ui.work.car.detail.operations.check.CheckCarDetailActivity" android:launchMode="singleTop" /> <activity android:screenOrientation="portrait" android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize" android:launchMode="singleTop" android:screenOrientation="portrait" /> <activity android:name=".ui.work.car.detail.operations.charge.ChargeCarActivity" android:launchMode="singleTop" /> <activity android:screenOrientation="portrait" android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize" android:launchMode="singleTop" android:screenOrientation="portrait" /> <activity android:name=".ui.work.car.detail.operations.charge.ChargeDetailActivity" android:launchMode="singleTop" /> <activity android:screenOrientation="portrait" android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize" android:launchMode="singleTop" android:screenOrientation="portrait" /> <activity android:name=".ui.work.car.detail.operations.repair.RepairCarActivity" android:launchMode="singleTop" /> <activity android:screenOrientation="portrait" android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize" android:launchMode="singleTop" android:screenOrientation="portrait" /> <activity android:name=".ui.work.car.detail.operations.repair.RepairCarDetailActivity" android:launchMode="singleTop" /> <activity android:screenOrientation="portrait" android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize" android:launchMode="singleTop" android:screenOrientation="portrait" /> <activity android:name=".ui.work.car.detail.operations.maintain.MaintainCarActivity" android:launchMode="singleTop" /> <activity android:screenOrientation="portrait" android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize" android:launchMode="singleTop" android:screenOrientation="portrait" /> <activity android:name=".ui.work.car.detail.operations.maintain.MaintainDetailActivity" android:launchMode="singleTop" /> <activity android:screenOrientation="portrait" android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize" android:launchMode="singleTop" android:screenOrientation="portrait" /> <activity android:name=".ui.work.car.detail.operations.repair.record.RepairRecordActivity" android:launchMode="singleTop" /> <activity android:screenOrientation="portrait" android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize" android:launchMode="singleTop" android:screenOrientation="portrait" /> <activity android:name=".ui.work.car.detail.management.report.CarReportActivity" android:launchMode="singleTop" /> <activity android:screenOrientation="portrait" android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize" android:launchMode="singleTop" android:screenOrientation="portrait" /> <activity android:name=".ui.work.car.detail.StandardDescriptionActivity" android:launchMode="singleTop" /> <activity android:screenOrientation="portrait" android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize" android:launchMode="singleTop" android:screenOrientation="portrait" /> <activity android:name=".ui.work.site.SiteNavActivity" android:windowSoftInputMode="adjustResize" android:launchMode="singleTop" /> <activity android:screenOrientation="portrait" android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize" android:launchMode="singleTop" android:screenOrientation="portrait" android:windowSoftInputMode="adjustResize" /> <activity android:name=".ui.task.normal.NormalTaskDetailActivity" android:launchMode="singleTop" /> <activity android:screenOrientation="portrait" android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize" android:launchMode="singleTop" android:screenOrientation="portrait" /> <activity android:name=".ui.task.selectCar.SelectCarActivity" android:launchMode="singleTop" /> <activity android:screenOrientation="portrait" android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize" android:launchMode="singleTop" android:screenOrientation="portrait" /> <activity android:name=".ui.task.create.CreateTaskActivity" android:launchMode="singleTop" /> <activity android:screenOrientation="portrait" android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize" android:launchMode="singleTop" android:screenOrientation="portrait" /> <activity android:name=".ui.task.accident.detail.AccidentDetailActivity" android:launchMode="singleTop" /> <activity android:screenOrientation="portrait" android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize" android:launchMode="singleTop" android:screenOrientation="portrait" /> <activity android:name=".ui.task.accident.handle.AccidentProcessActivity" android:launchMode="singleTop" /> <activity android:screenOrientation="portrait" android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize" android:launchMode="singleTop" android:screenOrientation="portrait" /> <activity android:name=".ui.task.taskSub.TaskSubActivity" android:launchMode="singleTop" /> <activity android:screenOrientation="portrait" android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize" android:launchMode="singleTop" android:screenOrientation="portrait" /> <activity android:name=".ui.task.taskDetail.TaskDetailActivity" android:launchMode="singleTop" /> <!-- 配置高德key --> android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize" android:launchMode="singleTop" android:screenOrientation="portrait" /> <!-- 配置高德key --> <meta-data android:name="com.amap.api.v2.apikey" android:value="dc26e21a7c2a494443eddbe52a331f19" /> <!-- android:value="c237d9248cc928ec73f078507122ed7d" /> --> @@ -270,28 +273,28 @@ android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_paths" /> </provider> <meta-data android:name="com.huawei.hms.client.appid" android:value="appid=${PUSH_HW_CLIENT_ID}" /> <!-- 荣耀推送通道 --> android:value="appid=${PUSH_HW_CLIENT_ID}" /> <!-- 荣耀推送通道 --> <meta-data android:name="com.hihonor.push.app_id" android:value="${PUSH_RY_APP_ID}" /> <!-- VIVO推送通道 --> android:value="${PUSH_RY_APP_ID}" /> <!-- VIVO推送通道 --> <meta-data android:name="com.vivo.push.api_key" android:value="${PUSH_VV_APP_KEY}" /> <meta-data android:name="com.vivo.push.app_id" android:value="${PUSH_VV_APP_ID}" /> <activity android:screenOrientation="portrait" android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize" android:name=".push.PopupPushActivity" android:exported="true"> <activity android:name=".push.PopupPushActivity" android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize" android:exported="true" android:screenOrientation="portrait"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> @@ -300,7 +303,6 @@ android:path="/thirdpush" android:scheme="agoo" /> </intent-filter> </activity> </application> app/src/main/java/com/xw/yunwei/MyApp.kt
@@ -356,8 +356,12 @@ "显示activity ${currentShowActivity.javaClass.name}" ) if (currentShowActivity is BaseActivity<*, *>) { ttsManager.setVideoText("您收到一条${if (taskModel.isAccidentTask()) "事故任务" else "任务指派"},请及时处理!") VibrateUtils.vibratePattern() if (taskModel.voiceBroadcast) { ttsManager.setVideoText("您收到一条${if (taskModel.isAccidentTask()) "事故任务" else "任务指派"},请及时处理!") } if (taskModel.vibration) { VibrateUtils.vibratePattern() } if (taskModel.isAccidentTask()) { return@collect } app/src/main/java/com/xw/yunwei/constants/Key.kt
@@ -11,4 +11,5 @@ const val PASS_POINTS = "passPoints" const val CLOCK_MODEL = "clockModel" const val ENTER_TYPE = "enterType" const val TITLE = "title" } app/src/main/java/com/xw/yunwei/model/CarModel.kt
@@ -5,6 +5,7 @@ import com.xw.common.utils.BindUtils.getUrl import com.xw.yunwei.R import kotlinx.parcelize.Parcelize import kotlin.math.min /** * 车辆管理实体 @@ -341,4 +342,15 @@ else -> 0 } } //获取显示车身编码 fun getShowVehicleCode(maxLength: Int): String { return vehicleCode?.let { if (it.isNotEmpty()) { it.substring(0, min(it.length, maxLength)) } else { "" } } ?: "" } } app/src/main/java/com/xw/yunwei/model/ClockInStatusModel.kt
@@ -58,6 +58,11 @@ } return xpClockIn?.hadLostOffWorkCheckedIn() != true } //是否配置打卡信息 fun hadConfigCheckInfo(): Boolean { return (xpShift?.id ?: 0) > 0 } } /** app/src/main/java/com/xw/yunwei/model/TaskAccidentModel.kt
@@ -2,6 +2,7 @@ import com.google.gson.annotations.SerializedName import com.xw.yunwei.extension.dateChangePattern import kotlin.math.min /** * 任务事故详情 @@ -180,6 +181,17 @@ fun getShowCreateTime(): String?{ return createTime?.dateChangePattern("yyyy-MM-dd HH:mm:ss","yyyy/MM/dd HH:mm:ss") } //获取显示车身编码 fun getShowVehicleCode(maxLength: Int): String { return vehicleCode?.let { if (it.isNotEmpty()) { it.substring(0, min(it.length, maxLength)) } else { "" } } ?: "" } } /** app/src/main/java/com/xw/yunwei/model/TaskModel.kt
@@ -105,9 +105,11 @@ * 可以操作到达的配置范围,单位米 */ @SerializedName("canArriveRange") val canArriveRange: Int? = null val canArriveRange: Int? = null, //websocket 功能控制字段 是否震动 val vibration: Boolean = true, //websocket 功能控制字段 是否语音 val voiceBroadcast: Boolean = true, ) { companion object Companion { // 常规任务类型枚举(taskCategory=1时使用) app/src/main/java/com/xw/yunwei/model/TaskNormalModel.kt
@@ -2,6 +2,7 @@ import com.google.gson.annotations.SerializedName import com.xw.yunwei.extension.dateChangePattern import kotlin.math.min /** * 常规任务详情 @@ -156,4 +157,15 @@ fun getShowCreateTime(): String?{ return createTime?.dateChangePattern("yyyy-MM-dd HH:mm:ss","yyyy/MM/dd HH:mm:ss") } //获取显示车身编码 fun getShowVehicleCode(maxLength: Int): String { return vehicleCode?.let { if (it.isNotEmpty()) { it.substring(0, min(it.length, maxLength)) } else { "" } } ?: "" } } app/src/main/java/com/xw/yunwei/ui/common/WebActivity.kt
New file @@ -0,0 +1,72 @@ package com.xw.yunwei.ui.common import android.annotation.SuppressLint import android.os.Bundle import android.webkit.WebChromeClient import android.webkit.WebSettings import android.webkit.WebView import androidx.core.os.bundleOf import com.xw.yunwei.BR import com.xw.yunwei.BaseBusinessActivity import com.xw.yunwei.constants.Key import com.xw.yunwei.databinding.ActivityWebBinding //通用网页 class WebActivity : BaseBusinessActivity<ActivityWebBinding, WebVM>() { val url by lazy { intent.getStringExtra(Key.DATA) } val title by lazy { intent.getStringExtra(Key.TITLE) } override fun getBindingVariable() = BR.viewModel companion object { //获取跳转该页面参数 fun getParams(url: String, title: String? = null): Bundle { return bundleOf(Key.DATA to url, Key.TITLE to title) } } override fun setListener() { super.setListener() binding.back.setOnClickListener { onBackPressedHandel() } } override fun init() { super.init() initWeb(binding.web) url?.also { binding.web.loadUrl(it) } } @SuppressLint("SetJavaScriptEnabled") private fun initWeb(webView: WebView) { //声明WebSettings子类 val webSettings = webView.settings webSettings.domStorageEnabled = true //设置适应Html5 //如果访问的页面中要与Javascript交互,则webview必须设置支持Javascript webSettings.javaScriptEnabled = true //允许js调用 webSettings.allowContentAccess = true //是否允许在WebView中访问内容URL(Content Url),默认允许 //缩放操作 webSettings.setSupportZoom(true) //支持缩放,默认为true。是下面那个的前提。 webSettings.builtInZoomControls = true //设置内置的缩放控件。若为false,则该WebView不可缩放 webSettings.displayZoomControls = false //隐藏原生的缩放控件 //其他细节操作 webSettings.cacheMode = WebSettings.LOAD_CACHE_ELSE_NETWORK //关闭webview中缓存 webSettings.javaScriptCanOpenWindowsAutomatically = true //支持通过JS打开新窗口 webSettings.loadsImagesAutomatically = true //支持自动加载图片 webSettings.defaultTextEncodingName = "utf-8" //设置编码格式 webView.webChromeClient = object : WebChromeClient() { override fun onReceivedTitle(view: WebView?, title: String?) { super.onReceivedTitle(view, title) binding.title.text = title?.ifEmpty { this@WebActivity.title } ?: this@WebActivity.title } } } } app/src/main/java/com/xw/yunwei/ui/common/WebVM.kt
New file @@ -0,0 +1,7 @@ package com.xw.yunwei.ui.common import android.app.Application import com.xw.common.base.BaseViewModel class WebVM(application: Application): BaseViewModel(application) { } app/src/main/java/com/xw/yunwei/ui/task/TaskFragment.kt
@@ -132,6 +132,9 @@ }.apply { attach() } view.post { binding.viewPager.currentItem = 1 } refreshFilterStatus() } app/src/main/java/com/xw/yunwei/ui/task/create/CreateTaskActivity.kt
@@ -336,7 +336,7 @@ ImageDefault(item.getShowVehiclePicture(), com.xw.yunwei.R.mipmap.img_work_car) ) binding.name.text = item.plateNumber binding.color.text = "${item.vehicleColor} | 车身编码:${item.vehicleCode}" binding.color.text = "${item.vehicleColor} | 车身编码:${item.getShowVehicleCode(6)}" binding.status.setTextColor(item.getShowStatusTextColor().colorIdToColorValue(this)) binding.status.setBackgroundResource(item.getShowStatusBgResource()) binding.status.text=item.getShowStatus() app/src/main/java/com/xw/yunwei/ui/task/selectCar/SelectCarAdapter.kt
@@ -34,7 +34,7 @@ // 加载车辆图片,异常时显示默认车辆图 ViewAdapter.loadImage(binding.icon, ImageDefault(item.getShowVehiclePicture(), R.mipmap.img_work_car)) binding.name.text = item.plateNumber binding.color.text = "${item.vehicleColor} | 车身编码:${item.vehicleCode}" binding.color.text = "${item.vehicleColor} | 车身编码:${item.getShowVehicleCode(6)}" binding.status.setBackgroundResource(item.getShowStatusBgResource()) binding.status.setTextColor(item.getShowStatusTextColor().colorIdToColorValue(it.root.context)) binding.status.text=item.getShowStatus() app/src/main/java/com/xw/yunwei/ui/user/login/LoginActivity.kt
@@ -150,7 +150,6 @@ binding.psw.visibility=View.GONE binding.eye2.visibility=View.GONE binding.vPswLine.visibility=View.GONE binding.forgetPsw.visibility=View.GONE } viewModel.hadCheckMobilePasswordLogin() -> { @@ -159,7 +158,6 @@ binding.psw.visibility=View.VISIBLE binding.eye2.visibility=View.VISIBLE binding.vPswLine.visibility=View.VISIBLE binding.forgetPsw.visibility=View.GONE } } } app/src/main/java/com/xw/yunwei/ui/user/login/LoginVM.kt
@@ -18,6 +18,7 @@ import com.xw.yunwei.net.UserRepository import com.xw.yunwei.net.YiHuRepository import com.xw.yunwei.ui.MainActivity import com.xw.yunwei.ui.common.WebActivity import org.koin.core.component.inject class LoginVM(application: Application) : BaseViewModel(application) { @@ -60,6 +61,13 @@ R.id.submit -> modifyPsw() R.id.eye1 -> eyeStatus1.value = !eyeStatus1.value!! R.id.eye2 -> eyeStatus2.value = !eyeStatus2.value!! R.id.tv_rest_psw -> startActivity( WebActivity::class.java, WebActivity.getParams( "https://xpsso.xiaopeng.com/sso_login_page/forget.html", "重置密码" ) ) } } app/src/main/java/com/xw/yunwei/ui/user/mine/MineVM.kt
@@ -60,7 +60,7 @@ R.id.infoLayout -> startActivity(UserInfoActivity::class.java) R.id.uploadLayout -> startActivity(CertUploadActivity::class.java) R.id.setLayout -> startActivity(SetActivity::class.java) R.id.schedulingLayout -> startActivity(SchedulingActivity::class.java) R.id.schedulingLayout, R.id.ll_empty -> startActivity(SchedulingActivity::class.java) R.id.goCheck -> startActivity( CheckInActivity::class.java, CheckInActivity.getParams( app/src/main/java/com/xw/yunwei/ui/work/CarAdapter.kt
@@ -23,7 +23,7 @@ ViewAdapter.loadImage(binding.icon, ImageDefault(item.getShowVehiclePicture(), R.mipmap.img_work_car)) binding.name.text = item.plateNumber binding.no.text = "NO.${item.vehicleCode}" binding.no.text = item.getShowVehicleCode(6) binding.batteryLife.text = "${item.mileageRange?.toInt()}km" binding.batteryLife.setTextColor( com.xw.common.custom.BatteryView.getBatteryColor( app/src/main/java/com/xw/yunwei/ui/work/car/detail/management/report/CarReportActivity.kt
@@ -1,5 +1,8 @@ package com.xw.yunwei.ui.work.car.detail.management.report import android.view.Gravity import androidx.core.view.isVisible import com.xw.common.CommonDialog import com.xw.common.PdfViewDialog import com.xw.common.utils.BindUtils.getResColor import com.xw.common.utils.BindUtils.getUrls @@ -23,6 +26,7 @@ override fun setObservable() { super.setObservable() viewModel.carReportModel.observe(this) { binding.llNotice.isVisible=false when (it.status) { // 保单申请状态 0 = 待申请 1 = 待审核 2 = 已通过 3 = 已驳回 0 -> { @@ -34,6 +38,7 @@ } 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,13 +67,13 @@ override fun setListener() { super.setListener() binding.apply.setOnClickListener { viewModel.apply() } binding.reapply.setOnClickListener { viewModel.apply() } binding.apply.setOnClickListener { apply() } binding.reapply.setOnClickListener { apply() } binding.viewPdf.setOnClickListener { viewModel.carReportModel.value?.let { it.xpPolicyApplicationVO?.policyInformation?.getUrls()?.getOrNull(0)?.let { // if (it.endsWith("pdf")) { PdfViewDialog().show(supportFragmentManager, "PDF_VIEW", url = it) PdfViewDialog().show(supportFragmentManager, "PDF_VIEW", url = it) // } else { // ToastUtilCommon.showWarn("文件格式异常,无法查看,当前查看pdf链接为 $it") // } @@ -76,4 +81,19 @@ } } } //申请查看 private fun apply() { CommonDialog.showNoticeDialog( context = this, cancelable = true, cancelOnTouchOutside = true, title = "确认申请查看保单?", content = "提交后需后台人工审核,审核通过放能查看保单。", contentTextGravity = Gravity.START, rightOperationBlock = { viewModel.apply() true }) } } app/src/main/res/layout/activity_accident_detail.xml
@@ -125,7 +125,7 @@ android:background="@drawable/shape_gray_3_bg_4" android:paddingHorizontal="@dimen/dp_8" android:paddingVertical="@dimen/dp_4" android:text='@{"车身编码:" + viewModel.taskDetail.vehicleCode}' android:text='@{"车身编码:" + viewModel.taskDetail.getShowVehicleCode(6)}' android:textColor="@color/gray_9" android:textSize="@dimen/sp_12" tools:text="车身编码:01234" /> app/src/main/res/layout/activity_car_check.xml
@@ -200,7 +200,7 @@ android:layout_marginStart="@dimen/dp_8" android:layout_marginTop="@dimen/dp_20" android:drawableStart="@drawable/svg_must" android:text="传感器清洁" android:text="外观和轮胎" android:textColor="@color/gray_9" android:textSize="@dimen/sp_14" android:textStyle="bold" @@ -254,7 +254,7 @@ android:layout_marginStart="@dimen/dp_8" android:layout_marginTop="@dimen/dp_20" android:drawableStart="@drawable/svg_must" android:text="车内交互屏检查" android:text="车内大屏" android:textColor="@color/gray_9" android:textSize="@dimen/sp_14" android:textStyle="bold" @@ -308,7 +308,7 @@ android:layout_marginStart="@dimen/dp_8" android:layout_marginTop="@dimen/dp_20" android:drawableStart="@drawable/svg_must" android:text="紧急求助按钮/应答机" android:text="舱内外清洁" android:textColor="@color/gray_9" android:textSize="@dimen/sp_14" android:textStyle="bold" @@ -424,9 +424,10 @@ android:layout_marginStart="@dimen/dp_8" android:layout_marginTop="@dimen/dp_20" android:drawableStart="@drawable/svg_must" android:text="订单系统检查" android:text="随车安全设备" android:textColor="@color/gray_9" android:textSize="@dimen/sp_14" android:textStyle="bold" app:layout_constraintStart_toEndOf="@id/v_point5" app:layout_constraintTop_toBottomOf="@+id/rv4" /> app/src/main/res/layout/activity_car_check_detail.xml
@@ -125,7 +125,7 @@ android:layout_height="wrap_content" android:layout_marginStart="@dimen/dp_20" android:layout_marginTop="@dimen/dp_20" android:text="传感器清洁" android:text="外观和轮胎" android:textColor="@color/gray_9" android:textSize="@dimen/sp_16" android:textStyle="bold" @@ -182,7 +182,7 @@ android:layout_height="wrap_content" android:layout_marginStart="@dimen/dp_20" android:layout_marginTop="@dimen/dp_30" android:text="车内交互屏检查" android:text="车内大屏" android:textColor="@color/gray_9" android:textSize="@dimen/sp_16" android:textStyle="bold" @@ -205,7 +205,7 @@ android:layout_height="wrap_content" android:layout_marginStart="@dimen/dp_20" android:layout_marginTop="@dimen/dp_30" android:text="紧急求助按钮/应答机" android:text="舱内外清洁" android:textColor="@color/gray_9" android:textSize="@dimen/sp_16" android:textStyle="bold" @@ -253,7 +253,7 @@ android:layout_height="wrap_content" android:layout_marginStart="@dimen/dp_20" android:layout_marginTop="@dimen/dp_30" android:text="订单系统检查" android:text="随车安全设备" android:textColor="@color/gray_9" android:textSize="@dimen/sp_16" android:textStyle="bold" app/src/main/res/layout/activity_car_report.xml
@@ -163,12 +163,37 @@ app:layout_constraintBottom_toTopOf="@+id/viewPdf" app:layout_constraintTop_toBottomOf="@+id/layout"> <LinearLayout android:id="@+id/ll_notice" android:layout_width="match_parent" android:layout_height="@dimen/dp_40" android:background="@color/color_e0ebf7" android:gravity="center" android:visibility="gone" tools:visibility="visible" android:orientation="horizontal"> <ImageView android:layout_width="@dimen/dp_12" android:layout_height="@dimen/dp_12" android:src="@mipmap/ic_notice_blue" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="@dimen/dp_4" android:text="您的保单查看申请已提交,等待运营管理人员人工审核" android:textColor="@color/blue_5" android:textSize="@dimen/sp_12" /> </LinearLayout> <androidx.appcompat.widget.AppCompatImageView android:id="@+id/img" android:layout_width="match_parent" android:layout_height="wrap_content" 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 app/src/main/res/layout/activity_create_task.xml
@@ -82,7 +82,7 @@ <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginStart="@dimen/dp_10" android:layout_marginHorizontal="@dimen/dp_10" android:layout_weight="1" android:orientation="vertical"> @@ -97,9 +97,11 @@ <androidx.appcompat.widget.AppCompatTextView android:id="@+id/color" android:layout_width="wrap_content" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginTop="@dimen/dp_4" android:singleLine="true" android:ellipsize="end" android:textColor="@color/gray_7" android:textSize="@dimen/sp_14" tools:text="白色 | 车身编码:01234" /> app/src/main/res/layout/activity_login.xml
@@ -163,15 +163,14 @@ app:layout_constraintTop_toBottomOf="@+id/psw" /> <androidx.appcompat.widget.AppCompatTextView android:id="@+id/forgetPsw" android:id="@+id/tv_rest_psw" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="@dimen/dp_12" android:onClick="@{viewModel.onClick}" android:text="忘记密码" android:text="重置密码" android:textColor="@color/gray_6" android:textSize="@dimen/sp_12" android:visibility="gone" app:layout_constraintEnd_toEndOf="@+id/psw" app:layout_constraintTop_toBottomOf="@+id/psw" /> @@ -186,7 +185,7 @@ android:textSize="@dimen/sp_16" android:textStyle="bold" app:cornerRadius="@dimen/dp_4" app:layout_constraintTop_toBottomOf="@+id/forgetPsw" app:layout_constraintTop_toBottomOf="@+id/tv_rest_psw" app:layout_goneMarginTop="@dimen/dp_56" /> <androidx.appcompat.widget.AppCompatImageView app/src/main/res/layout/activity_web.xml
New file @@ -0,0 +1,54 @@ <?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"> <data> <variable name="viewModel" type="com.xw.yunwei.ui.common.WebVM" /> </data> <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/main" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".ui.common.WebActivity"> <androidx.appcompat.widget.AppCompatImageView android:id="@+id/back" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="@dimen/dp_20" android:layout_marginTop="@dimen/dp_56" android:src="@drawable/svg_back" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <androidx.appcompat.widget.AppCompatTextView android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxLength="16" android:textColor="@color/gray_10" android:textSize="@dimen/sp_16" android:textStyle="bold" app:layout_constraintBottom_toBottomOf="@+id/back" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="@+id/back" tools:text="标准说明" /> <WebView android:id="@+id/web" android:layout_width="0dp" android:layout_height="0dp" android:layout_marginTop="@dimen/dp_88" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout> </layout> app/src/main/res/layout/fragment_mine.xml
@@ -218,6 +218,7 @@ <!-- show="@{viewModel.clockModel!=null}"--> <LinearLayout show="@{viewModel.clockModel.hadConfigCheckInfo()}" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="12dp" @@ -225,7 +226,9 @@ android:gravity="center_vertical" android:orientation="horizontal" android:paddingHorizontal="@dimen/dp_9" android:paddingVertical="@dimen/dp_7"> android:paddingVertical="@dimen/dp_7" android:visibility="gone" tools:visibility="visible"> <androidx.appcompat.widget.AppCompatImageView android:layout_width="20dp" @@ -261,11 +264,14 @@ <!-- show="@{viewModel.clockModel!=null}"--> <LinearLayout show="@{viewModel.clockModel.hadConfigCheckInfo()}" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="12dp" android:gravity="center_vertical" android:orientation="horizontal"> android:orientation="horizontal" android:visibility="gone" tools:visibility="visible"> <androidx.appcompat.widget.AppCompatTextView android:layout_width="0dp" @@ -305,10 +311,13 @@ <!-- show="@{viewModel.clockModel!=null}"--> <FrameLayout show="@{viewModel.clockModel.hadConfigCheckInfo()}" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="@dimen/dp_12" android:background="@mipmap/img_map"> android:background="@mipmap/img_map" android:visibility="gone" tools:visibility="visible"> <androidx.appcompat.widget.AppCompatTextView show="@{viewModel.clockModel!=null}" @@ -335,6 +344,38 @@ </FrameLayout> <LinearLayout android:id="@+id/ll_empty" show="@{!viewModel.clockModel.hadConfigCheckInfo()}" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="@dimen/dp_20" android:gravity="center" android:onClick="@{viewModel.onClick}" android:orientation="vertical"> <ImageView android:layout_width="@dimen/dp_58" android:layout_height="@dimen/dp_64" android:src="@mipmap/icon_date_empty" /> <androidx.appcompat.widget.AppCompatTextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="@dimen/dp_8" android:text="今日暂无排班安排" android:textColor="@color/gray_7" android:textSize="@dimen/sp_12" android:textStyle="bold" /> <androidx.appcompat.widget.AppCompatTextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="@dimen/dp_4" android:text="点击卡片可查看近30天全部排班" android:textColor="@color/gray_7" android:textSize="@dimen/sp_12" /> </LinearLayout> </LinearLayout> </androidx.cardview.widget.CardView> app/src/main/res/layout/item_select_car.xml
@@ -30,7 +30,7 @@ <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginStart="@dimen/dp_10" android:layout_marginHorizontal="@dimen/dp_10" android:layout_weight="1" android:orientation="vertical"> @@ -45,11 +45,13 @@ <androidx.appcompat.widget.AppCompatTextView android:id="@+id/color" android:layout_width="wrap_content" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginTop="@dimen/dp_4" android:gravity="left|center_vertical" android:text="白色 | 车身编码:01234" android:singleLine="true" android:ellipsize="end" android:textColor="@color/gray_7" android:textSize="@dimen/sp_14" /> app/src/main/res/layout/layout_normal_task_status1.xml
@@ -70,7 +70,7 @@ android:layout_marginStart="@dimen/dp_8" android:paddingVertical="@dimen/dp_4" android:paddingHorizontal="@dimen/dp_8" android:text='@{"车身编码:" + viewModel.taskDetail.vehicleCode}' android:text='@{"车身编码:" + viewModel.taskDetail.getShowVehicleCode(6)}' android:background="@drawable/shape_gray_3_bg_4" android:textColor="@color/gray_9" android:textSize="@dimen/sp_12" app/src/main/res/layout/layout_normal_task_status2.xml
@@ -65,7 +65,7 @@ android:paddingHorizontal="@dimen/dp_8" android:paddingVertical="@dimen/dp_4" android:background="@drawable/shape_gray_3_bg_4" android:text='@{"车身编码:" + viewModel.taskDetail.vehicleCode}' android:text='@{"车身编码:" + viewModel.taskDetail.getShowVehicleCode(6)}' android:textColor="@color/gray_9" android:textSize="@dimen/sp_12" tools:text="车身编码:01234" /> app/src/main/res/mipmap-xhdpi/icon_date_empty.png
app/src/main/res/values/colors.xml
@@ -27,4 +27,5 @@ <color name="color_e5f0fc">#e5f0fc</color> <color name="color_0256ff">#0256ff</color> <color name="color_ec5340">#ec5340</color> <color name="color_e0ebf7">#e0ebf7</color> </resources> gradle/libs.versions.toml
@@ -40,6 +40,7 @@ alicloud = "3.10.1" shadowLayout = "3.4.5" jsoup = "1.22.2" activityKtx = "1.8.0" [libraries] @@ -124,6 +125,7 @@ alicloud-android-third-push-honor = { module = "com.aliyun.ams:alicloud-android-third-push-honor", version.ref = "alicloud" } alicloud-android-third-push-oppo = { module = "com.aliyun.ams:alicloud-android-third-push-oppo", version.ref = "alicloud" } alicloud-android-third-push-vivo = { module = "com.aliyun.ams:alicloud-android-third-push-vivo", version.ref = "alicloud" } androidx-activity-ktx = { group = "androidx.activity", name = "activity-ktx", version.ref = "activityKtx" } [plugins] android-application = { id = "com.android.application", version.ref = "agp" }