Przeglądaj źródła

refactor(更新)
- 角色新增和修改增加预设角色权限字符不可更改功能

周文健 5 miesięcy temu
rodzic
commit
12eab64549

+ 2 - 0
app/src/main/java/com/grkj/iscs/features/main/dialog/data_manage/UpdateRoleDialog.kt

@@ -7,6 +7,7 @@ import com.drake.brv.utils.linear
 import com.drake.brv.utils.models
 import com.drake.brv.utils.setup
 import com.grkj.data.dao.RoleDao
+import com.grkj.data.enums.RoleEnum
 import com.grkj.iscs.R
 import com.grkj.iscs.databinding.DialogAddRoleBinding
 import com.grkj.iscs.databinding.DialogUpdateRoleBinding
@@ -221,6 +222,7 @@ class UpdateRoleDialog(context: Context) : BasePopupWindow(context) {
         binding.roleNameEt.setText(updateRoleDataEntity.roleName)
         binding.roleKeyEt.setText(updateRoleDataEntity.roleKeys)
         binding.activateRb.isChecked = updateRoleDataEntity.status == true
+        binding.roleNameEt.isEnabled = updateRoleDataEntity.isPreset ==false
         this.selectedPermission.clear()
         this.selectedPermission.addAll(getSelectedData(updateRoleDataEntity.functionalPermissions))
         setSelectedData(roleManageFunctionalPermissionsData)

+ 1 - 0
app/src/main/java/com/grkj/iscs/features/main/entity/UpdateRoleDataEntity.kt

@@ -9,4 +9,5 @@ class UpdateRoleDataEntity {
     var roleKeys: String = ""
     var status: Boolean? = null
     var functionalPermissions: List<RoleManageFunctionalPermissionsEntity> = listOf()
+    var isPreset: Boolean = false
 }

+ 30 - 0
app/src/main/java/com/grkj/iscs/features/main/fragment/data_manage/RoleManageFragment.kt

@@ -10,6 +10,7 @@ import com.drake.brv.utils.divider
 import com.drake.brv.utils.linear
 import com.drake.brv.utils.models
 import com.drake.brv.utils.setup
+import com.grkj.data.enums.RoleEnum
 import com.grkj.data.model.vo.RoleManageVo
 import com.grkj.iscs.R
 import com.grkj.iscs.databinding.FragmentRoleManageBinding
@@ -52,6 +53,20 @@ class RoleManageFragment : BaseFragment<FragmentRoleManageBinding>() {
             getRoleData(nextPage = false)
         }
         addRoleDialog.setOnConfirmListener {
+            if (it.roleKeys in RoleEnum.values().map { it.roleKey }) {
+                TipDialog.show(
+                    title = CommonUtils.getStr(com.grkj.ui_base.R.string.action_failed)
+                        .toString(),
+                    dialogType = TipDialog.DialogType.ERROR,
+                    msg = CommonUtils.getStr(R.string.role_key_already_exists).toString(),
+                    countDownTime = 10,
+                    showConfirm = false,
+                    onCancelClick = {
+                        getRoleData(nextPage = false)
+                    }
+                )
+                return@setOnConfirmListener
+            }
             viewModel.addRoleData(it).observe(this) {
                 if (it) {
                     TipDialog.show(
@@ -81,6 +96,20 @@ class RoleManageFragment : BaseFragment<FragmentRoleManageBinding>() {
             }
         }
         updateRoleDialog.setOnConfirmListener {
+            if (it.roleKeys in RoleEnum.values().map { it.roleKey } && it.isPreset == false) {
+                TipDialog.show(
+                    title = CommonUtils.getStr(com.grkj.ui_base.R.string.action_failed)
+                        .toString(),
+                    dialogType = TipDialog.DialogType.ERROR,
+                    msg = CommonUtils.getStr(R.string.role_key_already_exists).toString(),
+                    countDownTime = 10,
+                    showConfirm = false,
+                    onCancelClick = {
+                        getRoleData(nextPage = false)
+                    }
+                )
+                return@setOnConfirmListener
+            }
             viewModel.updateRoleData(it).observe(this) {
                 if (it) {
                     TipDialog.show(
@@ -172,6 +201,7 @@ class RoleManageFragment : BaseFragment<FragmentRoleManageBinding>() {
                         roleKeys = item.roleKey.toString()
                         status = item.status == "0"
                         functionalPermissions = it
+                        isPreset = item.roleKey in RoleEnum.values().map { it.roleKey }
                     })
                     updateRoleDialog.showPopupWindow()
                 }