From 28b6fb97e49d756ce6d1fe1c464390ce3fe03cf3 Mon Sep 17 00:00:00 2001 From: xuxinchao Date: Thu, 22 Aug 2024 12:15:01 +0800 Subject: [PATCH] =?UTF-8?q?[6.6.0]=E6=95=B0=E6=8D=AE=E9=97=AD=E7=8E=AF-?= =?UTF-8?q?=E6=95=85=E9=9A=9C=E5=8E=9F=E5=9B=A0=E3=80=81=E6=8E=A5=E7=AE=A1?= =?UTF-8?q?=E5=8E=9F=E5=9B=A0=E7=AA=97=E5=8F=A3=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../workorder/FaultReasonWindow.kt | 93 +++++++++++++++--- .../workorder/TakeOverReasonWindow.kt | 94 ++++++++++++++++--- .../workorder/adapter/OrderReasonAdapter.kt | 8 +- .../src/main/res/drawable/bg_reason_list.xml | 15 +-- .../src/main/res/layout/view_fault_reason.xml | 89 ++++++------------ .../main/res/layout/view_take_over_reason.xml | 85 ++++++----------- 6 files changed, 238 insertions(+), 146 deletions(-) diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/FaultReasonWindow.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/FaultReasonWindow.kt index 34186efac2..df4c2c8412 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/FaultReasonWindow.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/FaultReasonWindow.kt @@ -20,8 +20,11 @@ import android.view.animation.ScaleAnimation import android.widget.EditText import android.widget.ImageView import android.widget.TextView +import android.widget.ToggleButton import androidx.appcompat.widget.AppCompatEditText +import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.Group +import androidx.core.content.ContextCompat import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import com.iflytek.cloud.ErrorCode @@ -75,10 +78,8 @@ class FaultReasonWindow constructor(activity: Activity) : View.OnTouchListener{ private lateinit var tvFaultTitle: TextView private lateinit var tvFaultTime: TextView - private lateinit var tvFaultType: TextView - private lateinit var ivFaultTypeSelect: ImageView - private lateinit var tvFaultReason: TextView - private lateinit var ivFaultReasonSelect: ImageView + private lateinit var tbFaultType: ToggleButton + private lateinit var tbFaultReason: ToggleButton private lateinit var ivTimeReduce: ImageView private lateinit var tvOccurrenceTime: TextView private lateinit var ivTimeAdd: ImageView @@ -121,10 +122,8 @@ class FaultReasonWindow constructor(activity: Activity) : View.OnTouchListener{ private fun initView(){ tvFaultTitle = mFloatLayout.findViewById(R.id.tvFaultTitle) tvFaultTime = mFloatLayout.findViewById(R.id.tvFaultTime) - tvFaultType = mFloatLayout.findViewById(R.id.tvFaultType) - ivFaultTypeSelect = mFloatLayout.findViewById(R.id.ivFaultTypeSelect) - tvFaultReason = mFloatLayout.findViewById(R.id.tvFaultReason) - ivFaultReasonSelect = mFloatLayout.findViewById(R.id.ivFaultReasonSelect) + tbFaultType = mFloatLayout.findViewById(R.id.tbFaultType) + tbFaultReason = mFloatLayout.findViewById(R.id.tbFaultReason) ivTimeReduce = mFloatLayout.findViewById(R.id.ivTimeReduce) tvOccurrenceTime = mFloatLayout.findViewById(R.id.tvOccurrenceTime) ivTimeAdd = mFloatLayout.findViewById(R.id.ivTimeAdd) @@ -140,19 +139,91 @@ class FaultReasonWindow constructor(activity: Activity) : View.OnTouchListener{ rvFaultList.layoutManager = linearLayoutManager orderReasonAdapter = OrderReasonAdapter() orderReasonAdapter.setListener(object: OrderReasonAdapter.ReasonSelectListener{ - override fun onSelectReason(reason: String) { - + override fun onSelectReason(reason: String, mSource: Int) { + if(mSource == 0){ + //类型 + tbFaultType.textOn = reason + tbFaultType.textOff = reason + tbFaultType.performClick() + }else{ + //原因 + tbFaultReason.textOn = reason + tbFaultReason.textOff = reason + tbFaultReason.performClick() + } } }) rvFaultList.adapter = orderReasonAdapter } - @OptIn(DelicateCoroutinesApi::class) @SuppressLint("SetTextI18n") private fun initEvent(){ + val iconDown = ContextCompat.getDrawable(mActivity, R.drawable.icon_fault_expand) + iconDown?.setBounds(0, 0, iconDown.minimumWidth, iconDown.minimumHeight) + val iconUp = ContextCompat.getDrawable(mActivity, R.drawable.icon_fault_retract) + iconUp?.setBounds(0, 0, iconUp.minimumWidth, iconUp.minimumHeight) //弹窗展示时间 tvFaultTime.text = mActivity.resources.getString(R.string.take_over_time) + millis2String(System.currentTimeMillis(), TimeUtils.getHourMinSecondFormat()) + //故障类型选择 + tbFaultType.setOnCheckedChangeListener { buttonView, isChecked -> + if (isChecked) { + buttonView.setCompoundDrawables(null, null, iconUp, null) + //展示列表 + rvFaultList.visibility = View.VISIBLE + (rvFaultList.layoutParams as ConstraintLayout.LayoutParams).topToBottom = R.id.tbFaultType + tbFaultReason.visibility = View.INVISIBLE + + val list = ArrayList() + list.add("一级分类1") + list.add("一级分类2") + list.add("一级分类3") + list.add("一级分类4") + list.add("一级分类5") + list.add("一级分类6") + list.add("一级分类7") + list.add("一级分类8") + list.add("一级分类9") + list.add("一级分类10") + list.add("一级分类11") + list.add("一级分类12") + list.add("一级分类13") + orderReasonAdapter.setData(list,0) + } else { + buttonView.setCompoundDrawables(null, null, iconDown, null) + //隐藏列表 + rvFaultList.visibility = View.GONE + tbFaultReason.visibility = View.VISIBLE + } + } + //故障原因选择 + tbFaultReason.setOnCheckedChangeListener { buttonView, isChecked -> + if (isChecked) { + buttonView.setCompoundDrawables(null, null, iconUp, null) + //展示列表 + rvFaultList.visibility = View.VISIBLE + (rvFaultList.layoutParams as ConstraintLayout.LayoutParams).topToBottom = R.id.tbFaultReason + val list = ArrayList() + list.add("二级分类1") + list.add("二级分类2") + list.add("二级分类3") + list.add("二级分类4") + list.add("二级分类5") + list.add("二级分类6") + list.add("二级分类7") + list.add("二级分类8") + list.add("二级分类9") + list.add("二级分类10") + list.add("二级分类11") + list.add("二级分类12") + list.add("二级分类13") + orderReasonAdapter.setData(list,1) + } else { + buttonView.setCompoundDrawables(null, null, iconDown, null) + //隐藏列表 + rvFaultList.visibility = View.GONE + } + } //发生时间 tvOccurrenceTime.text = millis2String(workOrderOccurrenceTime, TimeUtils.getHourMinFormat()) ivTimeReduce.setOnClickListener { diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/TakeOverReasonWindow.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/TakeOverReasonWindow.kt index 00592cdc3e..67173ce888 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/TakeOverReasonWindow.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/TakeOverReasonWindow.kt @@ -19,9 +19,12 @@ import android.view.animation.ScaleAnimation import android.widget.EditText import android.widget.ImageView import android.widget.TextView +import android.widget.ToggleButton import androidx.appcompat.widget.AppCompatEditText import androidx.appcompat.widget.AppCompatTextView +import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.Group +import androidx.core.content.ContextCompat import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import com.iflytek.cloud.ErrorCode @@ -74,10 +77,8 @@ class TakeOverReasonWindow constructor(activity: Activity) : View.OnTouchListene private var clickListener: ClickListener? = null private lateinit var tvTakeOverTime: TextView - private lateinit var tvTakeOverType: TextView - private lateinit var ivTakeOverTypeSelect: ImageView - private lateinit var tvTakeOverReason: TextView - private lateinit var ivTakeOverReasonSelect: ImageView + private lateinit var tbTakeOverType: ToggleButton + private lateinit var tbTakeOverReason: ToggleButton private lateinit var etNoteInput: AppCompatEditText private lateinit var ivNoteAudio: ImageView private lateinit var tvTakeOverReport: TextView @@ -116,10 +117,8 @@ class TakeOverReasonWindow constructor(activity: Activity) : View.OnTouchListene private fun initView(){ tvTakeOverTime = mFloatLayout.findViewById(R.id.tvTakeOverTime) - tvTakeOverType = mFloatLayout.findViewById(R.id.tvTakeOverType) - ivTakeOverTypeSelect = mFloatLayout.findViewById(R.id.ivTakeOverTypeSelect) - tvTakeOverReason = mFloatLayout.findViewById(R.id.tvTakeOverReason) - ivTakeOverReasonSelect = mFloatLayout.findViewById(R.id.ivTakeOverReasonSelect) + tbTakeOverType = mFloatLayout.findViewById(R.id.tbTakeOverType) + tbTakeOverReason = mFloatLayout.findViewById(R.id.tbTakeOverReason) etNoteInput = mFloatLayout.findViewById(R.id.etNoteInput) ivNoteAudio = mFloatLayout.findViewById(R.id.ivNoteAudio) tvTakeOverReport = mFloatLayout.findViewById(R.id.tvTakeOverReport) @@ -132,20 +131,91 @@ class TakeOverReasonWindow constructor(activity: Activity) : View.OnTouchListene rvTakeOverList.layoutManager = linearLayoutManager orderReasonAdapter = OrderReasonAdapter() orderReasonAdapter.setListener(object: OrderReasonAdapter.ReasonSelectListener{ - override fun onSelectReason(reason: String) { - + override fun onSelectReason(reason: String, mSource: Int) { + if(mSource == 0){ + //类型 + tbTakeOverType.textOn = reason + tbTakeOverType.textOff = reason + tbTakeOverType.performClick() + }else{ + //原因 + tbTakeOverReason.textOn = reason + tbTakeOverReason.textOff = reason + tbTakeOverReason.performClick() + } } }) rvTakeOverList.adapter = orderReasonAdapter } - - @OptIn(DelicateCoroutinesApi::class) @SuppressLint("SetTextI18n") private fun initEvent(){ + val iconDown = ContextCompat.getDrawable(mActivity, R.drawable.icon_fault_expand) + iconDown?.setBounds(0, 0, iconDown.minimumWidth, iconDown.minimumHeight) + val iconUp = ContextCompat.getDrawable(mActivity, R.drawable.icon_fault_retract) + iconUp?.setBounds(0, 0, iconUp.minimumWidth, iconUp.minimumHeight) //弹窗展示时间 tvTakeOverTime.text = mActivity.resources.getString(R.string.take_over_time) + millis2String(System.currentTimeMillis(), TimeUtils.getHourMinSecondFormat()) + //接管类型选择 + tbTakeOverType.setOnCheckedChangeListener { buttonView, isChecked -> + if (isChecked) { + buttonView.setCompoundDrawables(null, null, iconUp, null) + //展示列表 + rvTakeOverList.visibility = View.VISIBLE + (rvTakeOverList.layoutParams as ConstraintLayout.LayoutParams).topToBottom = R.id.tbTakeOverType + tbTakeOverReason.visibility = View.INVISIBLE + + val list = ArrayList() + list.add("一级分类1") + list.add("一级分类2") + list.add("一级分类3") + list.add("一级分类4") + list.add("一级分类5") + list.add("一级分类6") + list.add("一级分类7") + list.add("一级分类8") + list.add("一级分类9") + list.add("一级分类10") + list.add("一级分类11") + list.add("一级分类12") + list.add("一级分类13") + orderReasonAdapter.setData(list,0) + } else { + buttonView.setCompoundDrawables(null, null, iconDown, null) + //隐藏列表 + rvTakeOverList.visibility = View.GONE + tbTakeOverReason.visibility = View.VISIBLE + } + } + //接管原因选择 + tbTakeOverReason.setOnCheckedChangeListener { buttonView, isChecked -> + if (isChecked) { + buttonView.setCompoundDrawables(null, null, iconUp, null) + //展示列表 + rvTakeOverList.visibility = View.VISIBLE + (rvTakeOverList.layoutParams as ConstraintLayout.LayoutParams).topToBottom = R.id.tbTakeOverReason + val list = ArrayList() + list.add("二级分类1") + list.add("二级分类2") + list.add("二级分类3") + list.add("二级分类4") + list.add("二级分类5") + list.add("二级分类6") + list.add("二级分类7") + list.add("二级分类8") + list.add("二级分类9") + list.add("二级分类10") + list.add("二级分类11") + list.add("二级分类12") + list.add("二级分类13") + orderReasonAdapter.setData(list,1) + } else { + buttonView.setCompoundDrawables(null, null, iconDown, null) + //隐藏列表 + rvTakeOverList.visibility = View.GONE + } + } //补充描述 etNoteInput.onFocusChangeListener = OnFocusChangeListener { v, hasFocus -> val edit = v as EditText diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/adapter/OrderReasonAdapter.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/adapter/OrderReasonAdapter.kt index ce91fe0d25..3eddf7e2ed 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/adapter/OrderReasonAdapter.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/adapter/OrderReasonAdapter.kt @@ -14,9 +14,11 @@ class OrderReasonAdapter: RecyclerView.Adapter( private var data: List ?= null private var selectListener: ReasonSelectListener ?= null + private var mSource: Int = 0 //适配器数据来源,0:类型,1:原因 - fun setData(data: List){ + fun setData(data: List,source: Int){ this.data = data + mSource = source notifyDataSetChanged() } @@ -31,7 +33,7 @@ class OrderReasonAdapter: RecyclerView.Adapter( val reason = it[position] holder.tvReason.text = reason holder.tvReason.setOnClickListener { - selectListener?.onSelectReason(reason) + selectListener?.onSelectReason(reason,mSource) } } } @@ -48,7 +50,7 @@ class OrderReasonAdapter: RecyclerView.Adapter( interface ReasonSelectListener{ //选择原因 - fun onSelectReason(reason: String) + fun onSelectReason(reason: String,mSource: Int) } } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/bg_reason_list.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/bg_reason_list.xml index 28a4f7a863..bfb99ae3be 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/bg_reason_list.xml +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/bg_reason_list.xml @@ -3,10 +3,10 @@ - + @@ -14,13 +14,16 @@ - + diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/layout/view_fault_reason.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/view_fault_reason.xml index 33fda05378..53b4bc3c6d 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/res/layout/view_fault_reason.xml +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/view_fault_reason.xml @@ -65,8 +65,8 @@ android:layout_marginStart="@dimen/dp_14" /> - - - - - - - - - - \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/layout/view_take_over_reason.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/view_take_over_reason.xml index f8aa3e6611..f0ca7f315f 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/res/layout/view_take_over_reason.xml +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/view_take_over_reason.xml @@ -65,8 +65,8 @@ android:layout_marginStart="@dimen/dp_14" /> - - - - - - - - -