Explorar o código

1.添加训练内容详情接口

王鹏鹏 %!s(int64=2) %!d(string=hai) anos
pai
achega
db3fb976c0

+ 6 - 1
.idea/misc.xml

@@ -40,6 +40,7 @@
         <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/drawable/bg_train_right.xml" value="0.2265" />
         <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/drawable/bg_train_times.xml" value="0.2165" />
         <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/drawable/bg_train_title.xml" value="0.2165" />
+        <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/drawable/bg_training_content.xml" value="0.219" />
         <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/drawable/bg_training_content_list.xml" value="0.2345" />
         <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/drawable/bg_training_content_title.xml" value="0.2165" />
         <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/drawable/bg_work_benches_btn.xml" value="0.2265" />
@@ -53,19 +54,23 @@
         <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/layout/activity_free_train.xml" value="0.176" />
         <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/layout/activity_leisure_brain.xml" value="0.22826086956521738" />
         <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/layout/activity_service_package.xml" value="0.22826086956521738" />
+        <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/layout/activity_train_content_details.xml" value="0.176" />
         <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/layout/activity_train_data.xml" value="0.4700413223140496" />
         <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/layout/activity_workbenches.xml" value="0.72" />
+        <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/layout/dialog_course_treatment.xml" value="0.1" />
         <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/layout/fragment_brain_ability.xml" value="0.21014492753623187" />
         <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/layout/fragment_free_training.xml" value="0.21014492753623187" />
         <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/layout/fragment_task.xml" value="0.6" />
-        <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/layout/fragment_train_content.xml" value="0.23654015887025595" />
+        <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/layout/fragment_train_content.xml" value="0.22108843537414966" />
         <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/layout/fragment_train_report.xml" value="0.22826086956521738" />
+        <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/layout/item_course_treatment.xml" value="0.1" />
         <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/layout/item_free_training.xml" value="0.8800000000000001" />
         <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/layout/item_free_training_type.xml" value="0.536" />
         <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/layout/item_game_list.xml" value="0.4" />
         <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/layout/item_task.xml" value="0.8800000000000001" />
         <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/layout/item_train_report.xml" value="0.536" />
         <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/layout/item_training_content.xml" value="0.264" />
+        <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/layout/item_training_content_details.xml" value="0.1" />
         <entry key="..\:/workspace/yingyangfly/app/src/main/res/layout/activity_main.xml" value="0.22826086956521738" />
         <entry key="..\:/workspace/yingyangfly/app/src/main/res/layout/activity_push.xml" value="0.22239583333333332" />
         <entry key="..\:/workspace/yingyangfly/baselib/src/main/res/drawable/bg_center_toast.xml" value="0.2265" />

+ 1 - 1
baselib/build.gradle

@@ -131,5 +131,5 @@ dependencies {
     kapt(rootProject.ext.dependencies.glide_compiler)
     api(rootProject.ext.dependencies.mmkv_ktx)
     debugApi(rootProject.ext.dependencies.leakcanary)
-    debugApi(rootProject.ext.dependencies.rxbus)
+    api(rootProject.ext.dependencies.rxbus)
 }

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

@@ -90,4 +90,9 @@ object RouterUrlCommon {
      */
     const val freeTrain = "/free/train"
 
+    /**
+     * 训练内容详情
+     */
+    const val trainContentDetails = "/trainContent/details"
+
 }

+ 2 - 1
config.gradle

@@ -115,7 +115,8 @@ ext {
             "leakcanary"             : 'com.squareup.leakcanary:leakcanary-android:2.10',
             "LiteAVSDK_Player"       : 'com.tencent.liteav:LiteAVSDK_Player:latest.release',
             "imsdk"                  : 'com.tencent.imsdk:imsdk:5.1.66',
-            "rxbus"                  : 'lib.gorden.rxbus2:rxbus:2.0.1'
+            "rxbus"                  : 'lib.gorden.rxbus2:rxbus:2.0.1',
+            "nice_spinner"           : 'com.github.arcadefire:nice-spinner:1.4.4'
 
     ]
 }

+ 1 - 0
workbenches/build.gradle

@@ -21,5 +21,6 @@ dependencies {
     implementation(rootProject.ext.androidx.appcompat)
     implementation(rootProject.ext.androidx.material)
     implementation(rootProject.ext.androidx.constraintlayout)
+    implementation(rootProject.ext.dependencies.nice_spinner)
 
 }

+ 5 - 0
workbenches/src/main/AndroidManifest.xml

@@ -33,6 +33,11 @@
             android:configChanges="keyboardHidden|orientation|screenSize"
             android:screenOrientation="landscape"
             android:windowSoftInputMode="adjustResize|adjustPan" />
+        <activity
+            android:name=".traincontentdetails.TrainContentDetailsActivity"
+            android:configChanges="keyboardHidden|orientation|screenSize"
+            android:screenOrientation="landscape"
+            android:windowSoftInputMode="adjustResize|adjustPan" />
     </application>
 
 </manifest>

+ 7 - 0
workbenches/src/main/java/com/yingyang/workbenches/adapter/TrainContentAdapter.kt

@@ -4,12 +4,16 @@ import com.yingyang.workbenches.R
 import com.yingyang.workbenches.databinding.ItemTrainingContentBinding
 import com.yingyang.workbenches.entity.TrainContentBean
 import com.yingyangfly.baselib.adapter.BaseDataBindingAdapter
+import com.yingyangfly.baselib.ext.setOnSingleClickListener
 
 /**
  * 训练内容Adapter
  */
 class TrainContentAdapter(override val layoutId: Int = R.layout.item_training_content) :
     BaseDataBindingAdapter<TrainContentBean, ItemTrainingContentBinding>() {
+
+    var onTrainContentClickListener: ((bean: TrainContentBean) -> Unit)? = null
+
     override fun onBindViewHolder(
         binding: ItemTrainingContentBinding,
         item: TrainContentBean,
@@ -26,5 +30,8 @@ class TrainContentAdapter(override val layoutId: Int = R.layout.item_training_co
         } else {
             binding.contentLayout.setBackgroundResource(R.color.color_FFCFD9FF)
         }
+        binding.contentLayout.setOnSingleClickListener {
+            onTrainContentClickListener?.invoke(item)
+        }
     }
 }

+ 21 - 0
workbenches/src/main/java/com/yingyang/workbenches/adapter/TrainContentDetailsAdapter.kt

@@ -0,0 +1,21 @@
+package com.yingyang.workbenches.adapter
+
+import com.yingyang.workbenches.R
+import com.yingyang.workbenches.databinding.ItemTrainingContentDetailsBinding
+import com.yingyang.workbenches.entity.TrainContentDetailsBean
+import com.yingyangfly.baselib.adapter.BaseDataBindingAdapter
+
+/**
+ * 训练内容详情adapter
+ */
+class TrainContentDetailsAdapter(override val layoutId: Int = R.layout.item_training_content_details) :
+    BaseDataBindingAdapter<TrainContentDetailsBean, ItemTrainingContentDetailsBinding>() {
+
+    override fun onBindViewHolder(
+        binding: ItemTrainingContentDetailsBinding,
+        item: TrainContentDetailsBean,
+        position: Int
+    ) {
+        binding.data = item
+    }
+}

+ 26 - 0
workbenches/src/main/java/com/yingyang/workbenches/entity/TrainContentDetailsBean.kt

@@ -0,0 +1,26 @@
+package com.yingyang.workbenches.entity
+
+/**
+ * 训练内容详情
+ */
+data class TrainContentDetailsBean(
+    val createBy: String,
+    val createTime: String,
+    val currentTaskNum: Int,
+    val gameCodes: String,
+    val gameCoverImages: Any,
+    val gameNames: String,
+    val id: String,
+    val orgCode: String,
+    val orgName: String,
+    val status: String,
+    val taskCover: Any,
+    val taskDesn: String,
+    val taskName: String,
+    val taskStartTime: String,
+    val totalTaskNum: Int,
+    val treatmentId: String,
+    val updateBy: String,
+    val updateTime: String,
+    val userId: String
+)

+ 7 - 0
workbenches/src/main/java/com/yingyang/workbenches/net/WorkbenchesApiService.kt

@@ -68,4 +68,11 @@ interface WorkbenchesApiService {
      */
     @POST("app/treatment/findAll")
     suspend fun findAllTreatment(): BaseResp<List<TreatmentBean>>
+
+    /**
+     * 获取训练内容详情
+     */
+    @POST("app/task/selectTaskDetailById")
+    suspend fun getSelectTaskDetailById(@Query("taskId") taskId: String): BaseResp<List<TrainContentDetailsBean>>
+
 }

+ 12 - 3
workbenches/src/main/java/com/yingyang/workbenches/traincontent/TrainContentFragment.kt

@@ -2,8 +2,12 @@ package com.yingyang.workbenches.traincontent
 
 import com.yingyang.workbenches.adapter.TrainContentAdapter
 import com.yingyang.workbenches.databinding.FragmentTrainContentBinding
+import com.yingyang.workbenches.entity.TreatmentBean
+import com.yingyangfly.baselib.ext.setOnSingleClickListener
 import com.yingyangfly.baselib.ext.toast
 import com.yingyangfly.baselib.mvvm.BaseMVVMFragment
+import com.yingyangfly.baselib.router.RouterUrlCommon
+import com.yingyangfly.baselib.utils.JumpUtil
 import com.yingyangfly.baselib.utils.RxBusCodes
 import gorden.rxbus2.Subscribe
 import gorden.rxbus2.ThreadMode
@@ -14,16 +18,22 @@ import gorden.rxbus2.ThreadMode
 class TrainContentFragment :
     BaseMVVMFragment<FragmentTrainContentBinding, TrainContentViewModel>() {
 
+    private var treatmentList = mutableListOf<TreatmentBean>()
     private val adapter by lazy { TrainContentAdapter() }
 
     override fun initViews() {
         binding {
             rvTrainingContent.adapter = adapter
+            adapter.onTrainContentClickListener = { bean ->
+                JumpUtil.jumpActivityWithUrl(RouterUrlCommon.trainContentDetails, bean.id)
+            }
         }
     }
 
     override fun initListener() {
+        binding.courselayout.setOnSingleClickListener {
 
+        }
     }
 
     override fun initData() {
@@ -39,13 +49,12 @@ class TrainContentFragment :
     }
 
     private fun findAllTreatment() {
+        treatmentList.clear()
         viewModel.findAllTreatment(fail = {
             it.toast()
         }, success = {
             if (it.isNullOrEmpty().not()) {
-                it.forEach {
-                    findMyTask(it.id)
-                }
+                treatmentList.addAll(it)
             }
         })
     }

+ 48 - 0
workbenches/src/main/java/com/yingyang/workbenches/traincontentdetails/TrainContentDetailsActivity.kt

@@ -0,0 +1,48 @@
+package com.yingyang.workbenches.traincontentdetails
+
+import android.os.Bundle
+import com.alibaba.android.arouter.facade.annotation.Route
+import com.yingyang.workbenches.adapter.TrainContentDetailsAdapter
+import com.yingyang.workbenches.databinding.ActivityTrainContentDetailsBinding
+import com.yingyangfly.baselib.ext.toast
+import com.yingyangfly.baselib.mvvm.BaseMVVMActivity
+import com.yingyangfly.baselib.router.RouterUrlCommon
+
+/**
+ * 训练内容详情
+ */
+@Route(path = RouterUrlCommon.trainContentDetails)
+class TrainContentDetailsActivity :
+    BaseMVVMActivity<ActivityTrainContentDetailsBinding, TrainContentDetailsViewModel>() {
+
+    private var taskId = ""
+
+    private val adapter by lazy { TrainContentDetailsAdapter() }
+
+    override fun onCreate(savedInstanceState: Bundle?) {
+        taskId = intent.getStringExtra("url") ?: ""
+        super.onCreate(savedInstanceState)
+    }
+
+    override fun initViews() {
+        binding {
+            rvTrainContent.adapter = adapter
+        }
+    }
+
+    override fun initListener() {
+
+    }
+
+    override fun initData() {
+        viewModel.getSelectTaskDetailById(taskId, fail = {
+            it.toast()
+        }, success = {
+            if (it.isNullOrEmpty().not()) {
+                adapter.setData(it)
+            }
+        })
+    }
+
+
+}

+ 26 - 0
workbenches/src/main/java/com/yingyang/workbenches/traincontentdetails/TrainContentDetailsViewModel.kt

@@ -0,0 +1,26 @@
+package com.yingyang.workbenches.traincontentdetails
+
+import com.yingyang.workbenches.entity.TrainContentDetailsBean
+import com.yingyang.workbenches.net.WORKBENCHES_API
+import com.yingyangfly.baselib.mvvm.BaseViewModel
+
+/**
+ * @author 王鹏鹏
+ * @description 工作台页面ViewModel
+ */
+class TrainContentDetailsViewModel : BaseViewModel() {
+
+    /**
+     * 获取训练内容详情
+     */
+    fun getSelectTaskDetailById(
+        taskId: String,
+        fail: ((msg: String) -> Unit)? = null,
+        success: ((success: List<TrainContentDetailsBean>) -> Unit)? = null,
+    ) = launchFlow(true) {
+        WORKBENCHES_API.getSelectTaskDetailById(taskId)
+    }.runUI(
+        success,
+        fail
+    )
+}

+ 5 - 4
workbenches/src/main/manifest/AndroidManifest.xml

@@ -3,31 +3,32 @@
     package="com.yingyang.workbenches">
 
     <application>
+        <activity
+            android:name=".traincontentdetails.TrainContentDetailsActivity"
+            android:configChanges="keyboardHidden|orientation|screenSize"
+            android:screenOrientation="landscape"
+            android:windowSoftInputMode="adjustResize|adjustPan" />
         <activity
             android:name=".freetraining.FreeTrainActivity"
             android:configChanges="keyboardHidden|orientation|screenSize"
             android:screenOrientation="landscape"
             android:windowSoftInputMode="adjustResize|adjustPan" />
-
         <activity
             android:name=".leisurebrain.LeisureBrainActivity"
             android:configChanges="keyboardHidden|orientation|screenSize"
             android:screenOrientation="landscape"
             android:windowSoftInputMode="adjustResize|adjustPan" />
-
         <activity
             android:name=".traindata.TrainDataActivity"
             android:configChanges="keyboardHidden|orientation|screenSize"
             android:screenOrientation="landscape"
             android:windowSoftInputMode="adjustResize|adjustPan" />
-
         <activity
             android:name="com.yingyang.workbenches.WorkbenchesActivity"
             android:configChanges="keyboardHidden|orientation|screenSize"
             android:launchMode="singleTask"
             android:screenOrientation="landscape"
             android:windowSoftInputMode="adjustResize|adjustPan" />
-
         <activity
             android:name=".servicepackage.ServicePackageActivity"
             android:configChanges="keyboardHidden|orientation|screenSize"

+ 63 - 0
workbenches/src/main/res/layout/activity_train_content_details.xml

@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    tools:ignore="ResourceName">
+
+    <data>
+
+    </data>
+
+    <androidx.constraintlayout.widget.ConstraintLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:background="@drawable/bg_train">
+
+        <LinearLayout
+            android:id="@+id/layoutHead"
+            android:layout_width="@dimen/divider_195px"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal"
+            app:layout_constraintLeft_toLeftOf="parent"
+            app:layout_constraintTop_toTopOf="parent">
+
+            <ImageView
+                android:layout_width="@dimen/divider_48px"
+                android:layout_height="@dimen/divider_43px"
+                android:layout_marginStart="@dimen/divider_65px"
+                android:layout_marginTop="@dimen/divider_35px"
+                android:background="@mipmap/bg_home" />
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginStart="@dimen/divider_14px"
+                android:layout_marginTop="@dimen/divider_38px"
+                android:text="@string/home_pager"
+                android:textColor="@android:color/white"
+                android:textSize="@dimen/divider_28px"
+                android:textStyle="bold" />
+        </LinearLayout>
+
+        <androidx.cardview.widget.CardView
+
+            android:layout_width="match_parent"
+            android:layout_height="0dp"
+            android:layout_margin="@dimen/divider_36px"
+            android:background="@drawable/bg_train_right"
+            app:cardCornerRadius="@dimen/divider_38px"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintLeft_toLeftOf="parent"
+            app:layout_constraintRight_toRightOf="parent"
+            app:layout_constraintTop_toBottomOf="@id/layoutHead">
+
+            <androidx.recyclerview.widget.RecyclerView
+                android:id="@+id/rvTrainContent"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
+        </androidx.cardview.widget.CardView>
+
+
+    </androidx.constraintlayout.widget.ConstraintLayout>
+</layout>

+ 32 - 0
workbenches/src/main/res/layout/item_training_content_details.xml

@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    tools:ignore="ResourceName">
+
+    <data>
+
+        <variable
+            name="data"
+            type="com.yingyang.workbenches.entity.TrainContentDetailsBean" />
+    </data>
+
+    <androidx.constraintlayout.widget.ConstraintLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:minHeight="@dimen/divider_112px">
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="@{data.gameNames}"
+            android:textColor="@color/color_FF4A76FF"
+            android:textSize="@dimen/divider_26px"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintLeft_toLeftOf="parent"
+            app:layout_constraintRight_toRightOf="parent"
+            app:layout_constraintTop_toTopOf="parent" />
+
+    </androidx.constraintlayout.widget.ConstraintLayout>
+
+</layout>

BIN=BIN
workbenches/src/main/res/mipmap-xxhdpi/icon_arrow_down.png


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

@@ -14,6 +14,7 @@
     <dimen name="divider_348px" tools:ignore="PxUsage">348px</dimen>
     <dimen name="divider_345px" tools:ignore="PxUsage">345px</dimen>
     <dimen name="divider_340px" tools:ignore="PxUsage">340px</dimen>
+    <dimen name="divider_339px" tools:ignore="PxUsage">339px</dimen>
     <dimen name="divider_335px" tools:ignore="PxUsage">335px</dimen>
     <dimen name="divider_330px" tools:ignore="PxUsage">330px</dimen>
     <dimen name="divider_320px" tools:ignore="PxUsage">320px</dimen>

+ 1 - 1
workbenches/src/main/res/values/strings.xml

@@ -2,7 +2,7 @@
     <string name="tab1" tools:ignore="ResourceName">数据监控</string>
     <string name="tab2" tools:ignore="ResourceName">脑能力值</string>
     <string name="tab3" tools:ignore="ResourceName">训练内容</string>
-    <string name="tab4" tools:ignore="ResourceName">训练报告</string>
+    <string name="tab4" tools:ignore="ResourceName">理疗方案</string>
     <string name="home_pager" tools:ignore="ExtraTranslation,ResourceName">首页</string>
     <string name="live_broadcast" tools:ignore="ResourceName">直播</string>
     <string name="help" tools:ignore="ResourceName">使用帮助</string>

+ 1 - 0
workbenches/src/main/res/values/themes.xml

@@ -76,6 +76,7 @@
         <item name="android:layout_height">@dimen/divider_62px</item>
         <item name="android:layout_marginTop">@dimen/divider_60px</item>
         <item name="layout_constraintLeft_toLeftOf">parent</item>
+        <item name="layout_constraintRight_toRightOf">parent</item>
         <item name="background">@drawable/bg_training_content</item>
         <item name="layout_constraintTop_toTopOf">parent</item>
     </style>