fix: deleteButtonDisabled

This commit is contained in:
teukkk 2025-07-09 10:51:29 +08:00
parent 6a87ccd908
commit ee967606cf
3 changed files with 8 additions and 7 deletions

View File

@ -62,7 +62,7 @@ interface FormItemModel {
rules?: Arrayable<FormItemRule>, rules?: Arrayable<FormItemRule>,
hidden?: (e: any) => boolean, hidden?: (e: any) => boolean,
selectProps?: { selectProps?: {
options?: { label: string, value: string }[] options?: { label: string, value: string, disabledFunction?: (e: any) => boolean }[]
placeholder?: string placeholder?: string
multiple?: boolean multiple?: boolean
clearableFunction?: (e: any) => boolean clearableFunction?: (e: any) => boolean

View File

@ -8,7 +8,7 @@
:placeholder="model.selectProps?.placeholder ?? $t('common.selectPlaceholder')" :clearable="model.selectProps?.clearableFunction?model.selectProps?.clearableFunction?.(element): true" filterable :placeholder="model.selectProps?.placeholder ?? $t('common.selectPlaceholder')" :clearable="model.selectProps?.clearableFunction?model.selectProps?.clearableFunction?.(element): true" filterable
multiple style="width: 100%" collapse-tags collapse-tags-tooltip v-bind="model.selectProps"> multiple style="width: 100%" collapse-tags collapse-tags-tooltip v-bind="model.selectProps">
<el-option v-for="opt in model.selectProps?.options" :key="opt.value" :label="opt.label" <el-option v-for="opt in model.selectProps?.options" :key="opt.value" :label="opt.label"
:value="opt.value" /> :value="opt.value" :disabled="opt.disabledFunction?.(element)" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<!-- 删除按钮 --> <!-- 删除按钮 -->

View File

@ -69,7 +69,7 @@
</el-drawer> </el-drawer>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import {ref, reactive, watch, onBeforeMount} from 'vue' import {ref, reactive, watch, onBeforeMount, computed} from 'vue'
import type {FormInstance} from 'element-plus' import type {FormInstance} from 'element-plus'
import userManageApi from '@/api/system/user-manage' import userManageApi from '@/api/system/user-manage'
import {MsgSuccess} from '@/utils/message' import {MsgSuccess} from '@/utils/message'
@ -103,9 +103,10 @@ const roleFormItem = ref<FormItemModel[]>([]);
const adminRoleList = ref<any[]>([]) const adminRoleList = ref<any[]>([])
const workspaceFormItem = ref<FormItemModel[]>([]) const workspaceFormItem = ref<FormItemModel[]>([])
const isAdmin = computed(() => userForm.value['id'] === 'f0dd8f71-e4ee-11ee-8c84-a8a1595801ab')
function deleteButtonDisabled(element: any) { function deleteButtonDisabled(element: any) {
// admin if (isAdmin.value && ['ADMIN','WORKSPACE_MANAGE', 'USER'].includes(element.role_id)) {
if (userForm.value['id'] === 'f0dd8f71-e4ee-11ee-8c84-a8a1595801ab' && element.role_id === 'ADMIN') {
return true return true
} }
return false return false
@ -161,15 +162,15 @@ async function getWorkspaceFormItem() {
}, },
], ],
selectProps: { selectProps: {
// TODO
options: options:
res.data?.map((item) => ({ res.data?.map((item) => ({
label: item.name, label: item.name,
value: item.id, value: item.id,
disabledFunction: (e: any)=> isAdmin.value && ['WORKSPACE_MANAGE', 'USER'].includes(e.role_id) && item.id === 'default'
})) || [], })) || [],
placeholder: `${t('common.selectPlaceholder')}${t('views.role.member.workspace')}`, placeholder: `${t('common.selectPlaceholder')}${t('views.role.member.workspace')}`,
clearableFunction: (e)=>{ clearableFunction: (e)=>{
return !(userForm.value['id'] === 'f0dd8f71-e4ee-11ee-8c84-a8a1595801ab' && ['WORKSPACE_MANAGE', 'USER'].includes(e.role_id)) return !(isAdmin.value && ['WORKSPACE_MANAGE', 'USER'].includes(e.role_id))
} }
}, },
}, },