Sfoglia il codice sorgente

refactor(更新)
- 快捷入口保存修改

周文健 10 mesi fa
parent
commit
54240ad32d

BIN
app/src/main/assets/data.db


+ 4 - 7
app/src/main/java/com/grkj/iscs/features/main/dialog/QuickEntranceConfigDialog.kt

@@ -2,13 +2,11 @@ package com.grkj.iscs.features.main.dialog
 
 import android.graphics.Color
 import android.view.View
-import android.widget.LinearLayout
 import androidx.core.view.isVisible
 import androidx.recyclerview.widget.ItemTouchHelper
 import com.drake.brv.BindingAdapter
 import com.drake.brv.annotaion.ItemOrientation
 import com.drake.brv.listener.DefaultItemTouchCallback
-import com.drake.brv.utils.linear
 import com.drake.brv.utils.setup
 import com.google.android.flexbox.FlexboxLayoutManager
 import com.grkj.data.data.MMKVConstants
@@ -30,7 +28,7 @@ import com.sik.sikcore.extension.setDebouncedClickListener
 /**
  * 快捷入口配置弹窗
  */
-class QuickEntranceConfigDialog(private val saved: () -> Unit) :
+class QuickEntranceConfigDialog(private val save: (String) -> Unit) :
     OnBindView<FullScreenDialog>(R.layout.dialog_quick_entrance_config) {
     private var selectedQuickEntranceConfig = mutableListOf<QuickEntranceMenuItemEntity>()
     private val allQuickEntranceConfig: MutableList<QuickEntranceMenuItemEntity> =
@@ -111,9 +109,8 @@ class QuickEntranceConfigDialog(private val saved: () -> Unit) :
             }
         }.models = allQuickEntranceConfig
         binding.save.setDebouncedClickListener {
-            MMKVConstants.KEY_QUICK_ENTRY_CONFIG.saveMMKVData(selectedQuickEntranceConfig.map { it.permission.name }
+            save(selectedQuickEntranceConfig.map { it.permission.name }
                 .joinToString(","))
-            saved()
             dialog.dismiss()
         }
         binding.cancel.setDebouncedClickListener {
@@ -155,8 +152,8 @@ class QuickEntranceConfigDialog(private val saved: () -> Unit) :
          * 显示
          */
         @JvmStatic
-        fun show(saved: () -> Unit) {
-            FullScreenDialog.build().setCustomView(QuickEntranceConfigDialog(saved)).show()
+        fun show(save: (String) -> Unit) {
+            FullScreenDialog.build().setCustomView(QuickEntranceConfigDialog(save)).show()
         }
     }
 }

+ 3 - 1
app/src/main/java/com/grkj/iscs/features/main/fragment/home/HomeFragment.kt

@@ -41,7 +41,7 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
     private val viewModel: HomeViewModel by viewModels()
     private val quickEntranceList: MutableList<QuickEntranceMenuItemEntity>
         get() {
-            val quickEntryConfigJson = MMKVConstants.KEY_QUICK_ENTRY_CONFIG.getMMKVData("")
+            val quickEntryConfigJson = MainDomainData.userInfo?.quickEntranceConfig ?: ""
             val permissions = quickEntryConfigJson.split(",").filter { it.isNotBlank() }
                 .mapNotNull { runCatching { RoleFunctionalPermissionsEnum.valueOf(it) }.getOrNull() }
             return if (permissions.isEmpty()) {
@@ -139,7 +139,9 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
      */
     private fun quickEntranceConfig() {
         QuickEntranceConfigDialog.show {
+            MainDomainData.userInfo?.quickEntranceConfig = it
             binding.quickEntranceRv.models = quickEntranceList
+            viewModel.saveQuickEntranceData().observe(this) {}
         }
     }
 

+ 19 - 3
app/src/main/java/com/grkj/iscs/features/main/viewmodel/home/HomeViewModel.kt

@@ -2,10 +2,12 @@ package com.grkj.iscs.features.main.viewmodel.home
 
 import androidx.lifecycle.LiveData
 import androidx.lifecycle.liveData
+import com.grkj.data.data.MainDomainData
 import com.grkj.data.model.dos.IsWorkstation
 import com.grkj.data.model.dos.WorkflowMode
 import com.grkj.data.repository.IHardwareRepository
 import com.grkj.data.repository.IJobTicketRepository
+import com.grkj.data.repository.IUserRepository
 import com.grkj.data.repository.IWorkflowRepository
 import com.grkj.data.repository.IWorkstationRepository
 import com.grkj.ui_base.base.BaseViewModel
@@ -21,9 +23,10 @@ class HomeViewModel @Inject constructor(
     val workstationRepository: IWorkstationRepository,
     val jobTicketRepository: IJobTicketRepository,
     val hardwareRepository: IHardwareRepository,
-    val workflowRepository: IWorkflowRepository
+    val workflowRepository: IWorkflowRepository,
+    override val userRepository: IUserRepository
 ) :
-    BaseViewModel() {
+    BaseViewModel(userRepository) {
     var workstationData: List<IsWorkstation> = listOf()
     var inProgressJobNum = 0
     var lockedPointNum = 0
@@ -72,7 +75,8 @@ class HomeViewModel @Inject constructor(
                 jobTicketRepository.getInProgressJobSize(realTimeDataZoneId, selectedWorkflowMode)
             lockedPointNum =
                 jobTicketRepository.getLockedPointsCount(realTimeDataZoneId, selectedWorkflowMode)
-            usedHardwareNum = jobTicketRepository.getUsedHardwareCount(realTimeDataZoneId, selectedWorkflowMode)
+            usedHardwareNum =
+                jobTicketRepository.getUsedHardwareCount(realTimeDataZoneId, selectedWorkflowMode)
             allJobNum = jobTicketRepository.getAllJobSize(overviewDataZoneId, startTime, endTime)
             allPointNum =
                 hardwareRepository.getAllPointCount(overviewDataZoneId)
@@ -90,4 +94,16 @@ class HomeViewModel @Inject constructor(
             emit(workflowRepository.getWorkflowModes())
         }
     }
+
+    /**
+     * 保存快捷入口
+     */
+    fun saveQuickEntranceData(): LiveData<Boolean> {
+        return liveData(Dispatchers.IO) {
+            MainDomainData.userInfo?.let {
+                userRepository.updateUser(it)
+                emit(true)
+            }
+        }
+    }
 }

+ 0 - 5
data/src/main/java/com/grkj/data/data/MMKVConstants.kt

@@ -39,9 +39,4 @@ object MMKVConstants {
      * 锁柜id
      */
     const val KEY_LOCK_CABINET_ID = "key_lock_cabinet_id"
-
-    /**
-     * 快捷入口配置
-     */
-    const val KEY_QUICK_ENTRY_CONFIG = "selected_list"
 }

+ 4 - 0
data/src/main/java/com/grkj/data/model/dos/SysUserDo.kt

@@ -53,6 +53,10 @@ open class SysUserDo : BaseBean() {
 
     @ColumnInfo("login_date")
     var loginData: String? = null
+
+    @ColumnInfo("quick_entrance_config")
+    var quickEntranceConfig: String? = null
+
     override fun toString(): String {
         return "SysUserDo(userId=$userId, deptId=$deptId, userName='$userName', nickName='$nickName', userType=$userType, email=$email, phoneNumber=$phoneNumber, sex=$sex, avatar=$avatar, password=$password, keyCode=$keyCode, status=$status, delFlag=$delFlag, loginIp=$loginIp, loginData=$loginData)"
     }